集合处理-lamda表达式
程序员文章站
2022-04-12 22:47:21
List storeAppList操作集合本身//ListstoreAppList.forEach(e -> { e.setLogo(Constant.BASE_IMG_URL + e.getLogo()); e.setIsShow("1"); e.setIsActivate("1");});//MapgroupBy.forEach((key, value) -> {//TODO});获取集合中实体类属.....
List<StoreApp> storeAppList
操作集合本身
//List
storeAppList.forEach(e -> {
e.setLogo(Constant.BASE_IMG_URL + e.getLogo());
e.setIsShow("1");
e.setIsActivate("1");
});
//Map
groupBy.forEach((key, value) -> {
//TODO
});
获取集合中实体类属性的集合
//实体类属性
List<String> uuidList = storeAppList.stream().map(StoreApp::getUuid).collect(Collectors.toList());
//实体类属性为另外一个对象
List<SysDept> deptList = storeAppList.stream().map(e -> e.getSysDept()).collect(Collectors.toList());
获取集合前面n条数据
storeAppList.stream().limit(8).collect(Collectors.toList());
按集合中实体类属性分组
//根据分类名称分组
Map<String, List<StoreApp>> groupBy = appList.stream().collect(Collectors.groupingBy(StoreApp::getCategoryName));
按集合中实体类某字段排序
//第一种方式(对集合本身操作)
//正序
appList.sort(Comparator.comparing(StoreApp::getDowloads));
//倒序
appList.sort(Comparator.comparing(StoreApp::getDowloads).reversed());
//第二种方式
//正序
appList.stream().sorted(Comparator.comparing(StoreApp::getDowloads)).collect(Collectors.toList())
//倒序
appList.stream().sorted(Comparator.comparing(StoreApp::getDowloads).reversed()).collect(Collectors.toList())
集合根据实体类属性进行过滤
//过滤之后得到isRecommend=1的值
appList.stream().filter(s -> s.getIsRecommend() == 1).collect(Collectors.toList());
去重
//根据实体类属性去重
storeAppList.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StoreApp::getUuid))), ArrayList::new));
注意
forEach操作的是集合本身
stream生成一个新的集合
本文地址:https://blog.csdn.net/daring_xiaowang/article/details/109637910