lambda表达式常用00

交集 并集 差集

交集(listA ∩ ListB):
List<Person> listC = listA.stream().filter(item -> listB.contains(item)).collect(Collectors.toList());
listC中的元素有:属性name值为 aa, bb, cc 的对象。
 
并集(listA ∪ listB):
//先合体
listA.addAll(listB);
//再去重
List<Person> listC = listA.stream().distinct().collect(Collectors.toList());
listC中的元素有:属性name值为 aa, bb, cc ,dd的对象。
 
差集(listA - listB):
List<Person> listC = listA.stream().filter(item -> !listB.contains(item)).collect(Collectors.toList());
listC中的元素有:属性name值为 dd的对象。

  

List集合的过滤之lambda表达式

stmtList = stmtList.stream().filter(stmt -> !(stmt instanceof OracleInsertStatement) && stmt.getParent() == null).collect(Collectors.toList());

  

lambda表达式将List对象某个字段转换以逗号分隔的String类型

// 获取 users 集合中的 id 集合
List<Long> ids = users.stream().map(User::getId).collect(Collectors.toList());
System.out.println("ids: " + ids);
System.out.println();

// 获取 users 集合中的 id 集合并转为字符串, 通过 , 拼接p
String idsTxt = users.stream().map(User::getId).map(String::valueOf).collect(Collectors.joining(","));
System.out.println("idsTxt: " + idsTxt);
System.out.println();

List<String> names = users.stream().map(User::getName).collect(Collectors.toList());
System.out.println("names: " + names);

  

 

posted @ 2022-01-21 10:55  道行太浅  阅读(75)  评论(0编辑  收藏  举报