版权声明:本文为博主原创文章,未经博主允许不得转载。有任何问题请邮件联系[email protected] https://blog.csdn.net/drdongshiye/article/details/84030781
List<IdNameEntity> lists = new ArrayList<>();
lists.add(new IdNameEntity(8, "王一"));
lists.add(new IdNameEntity(5, "李二"));
lists.add(new IdNameEntity(7, "张三"));
lists.add(new IdNameEntity(7, "赵四"));
//使用普通方式解决
Map<Integer ,List<IdNameEntity>> map = new HashMap<>();
lists.forEach((temp) -> {
if (map.containsKey(temp.getId())){
map.get(temp.getId()).add(temp);
}else {
List<IdNameEntity> list = new ArrayList<>();
list.add(temp);
map.put(temp.getId(),list);
}
});
//java8 Stream 过滤和分组
Map<Integer, List<IdNameEntity>> collect = lists.stream().filter(temp -> temp.getId() > 5)
.collect(Collectors.groupingBy(IdNameEntity::getId));
//list 转为 map 注意 key不可以 重复
Map<String, IdNameEntity> collect = lists.stream().collect(Collectors.toMap(IdNameEntity::getName, IdNameEntity -> IdNameEntity));
lists.stream().map(temp -> temp.getId() * 2).collect(Collectors.toList());
常用的 groupingby 进行分组
filter 进行过滤
map reduce 进行函数式编程
转换map list set
sorted 排序