[java]java8 Stream 基本使用

版权声明:本文为博主原创文章,未经博主允许不得转载。有任何问题请邮件联系[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 排序

猜你喜欢

转载自blog.csdn.net/drdongshiye/article/details/84030781