欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

集合处理-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