首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Lambda表达式对集合按照特定进行排序

废话不多说 上代码:

import java.util.ArrayList;import java.util.Comparator;import java.util.List;

public class Main { public static void main(String[] args) { List listA = new ArrayList(); listA.add(new A("1")); listA.add(new A("1.1")); listA.add(new A("1.1.1")); listA.add(new A("2")); listA.add(new A("2.1")); listA.add(new A("2.1.1"));

// 使用Lambda表达式对集合A按照score进行排序 listA.sort(Comparator.comparing(A::getScore));

// 输出排序后的集合A for (A a : listA) { System.out.println(a.getScore()); } }

static class A { private String score;

public A(String score) { this.score = score; }

public String getScore() { return score; } }}

在上述示例代码中,我们创建了一个A类,其中包含一个score属性。然后,我们将具有不同score值的A对象添加到List集合listA中。使用 Comparator.comparing 方法和Lambda表达式,我们对listA进行排序,按照score属性的自然顺序进行排序。最后,我们遍历排序后的listA,并输出每个A对象的score值

输出结果将是:

11.11.1.122.12.1.1

List a = new List(); vo a1 = new vo(); a1.setIndex("1.11"); a1.setCostBaseSysNo("2221"); vo a2 = new vo(); a2.setIndex("1.12"); a2.setCostBaseSysNo("2222"); vo a3 = new vo(); a3.setIndex("1.13"); a3.setCostBaseSysNo("2223"); vo a4 = new vo(); a4.setIndex("1.14"); a4.setCostBaseSysNo("2224"); ..... a.add(a1); a.add(a2); a.add(a3); a.add(a4); List b = new List(); vo b1 = new vo(); b1.setIndex("1.1"); b1.setCostBaseSysNo("2221b"); vo b2 = new vo(); b2.setIndex("1.1"); b2.setCostBaseSysNo("2222b"); vo b3 = new vo(); b3.setIndex("1.1"); b3.setCostBaseSysNo("2223b"); vo b4 = new vo(); b4.setIndex("1.1"); b4.setCostBaseSysNo("2224b"); ..... b.add(b1);b.add(b2);b.add(b3);b.add(b4); public class vo extends BaseQueryFilter { /** * 序号 */ private String index; /** * 主键 */ private Long projectSysNo;}

根据idex相同    将 b集合的CostBaseSysNo   赋给a集合         用lamda表达式  的方法。

a.forEach(aItem -> { b.stream() .filter(bItem -> aItem.getIndex().equals(bItem.getIndex())) .findFirst() .ifPresent(bItem -> aItem.setCostBaseSysNo(bItem.getCostBaseSysNo())); });

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Oa2SDzdEu7nTOBtWUaSUDGaQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券