废话不多说 上代码:
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())); });
领取专属 10元无门槛券
私享最新 技术干货