Java8 stream/lambda 便捷用法
1、过滤
List<Condition> type1 = conditionsList.stream().filter(item -> item.getSortType() == 1).collect(Collectors.toList());
过滤出符合条件的元素,作为一个新的list
2、删除集合中的元素
changeFields.removeIf(changeField -> changeField.getId() == 36);
删除集合changeFields中ID为36的元素,相比于for循环和迭代器,这种删除方式快捷方便的多
3、合并两个同类型的list
Stream.of(dto1, dto2).flatMap(Collection::stream).collect(Collectors.toList());
合并同类项的两个list,返回一个新的list;等同于list.addAll()方法,上面这个方法更便捷而已
4、获取集合中的元素的属性(字段值)
List<String> customerIdList = labelList.stream().map(LabelSynchronizeDTO::getCustomerId).collect(Collectors.toList());
上面这行代码,获取的是List
5、根据元素属性,合并两个集合
## 伪码演示
class record{
private String customerId;
private String A;
private String B;
}
recordList = record1.stream().peek(m -> record2.stream().filter(m2-> Objects.equals(m.getCustomerId(),m2.getCustomerId())).forEach(m2-> {
m.setB(m2.getB());
})).collect(Collectors.toList());
这个方法应用场景感觉不多,上面代码的意思大致为,有两个集合1,2;集合1,2当中元素的ID是相同的,根据ID合并两个集合,最终得到的集合,其中元素的属性A取得是集合1,属性B取得是集合2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律