码迷,mamicode.com
首页 > 其他好文 > 详细

jdk8

时间:2020-09-17 15:38:10      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:assert   username   最小   atm   integer   idcard   sem   desc   map   

//运算
现在想获取User的身份证号码
List<User> users;
List<String> idcards= users.stream().map(User::getIdcard).collect(Collectors.toList())
数组所有元素,按某种规律计算:
List<Integer> num = Arrays.asList(1,2,3,4,5);
List<Integer> collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList());
System.out.println(collect1);
List<String> list= Arrays.asList("a", "b", "c", "d");
List<String> collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println(collect); //[A, B, C, D]


//过滤
//所有名字叫hanmeimei的集合
List<Object> firstObject= ObjectList.stream() .filter(a -> "hanmeimei".equals(a.getUserName())) .collect(Collectors.toList());
//所有名字为空的集合
List<Object> firstObject= ObjectList.stream() .filter(a -> StringUtils.isEmpty(a.getUserName())).collect(Collectors.toList());

//排序
List<User> userss = users.stream().sorted(new Comparator<User>() {
                    @Override
                    public int compare(User u1, User u2) {
                        return u1.getId() - u2.getId();
                    }
                }).collect(Collectors.toList());

//去重
.distinct()
// 统计  总数 总和 最大 最小 平均
.mapToInt(i -> i).summaryStatistics()    flatMapToInt

//flatMap
Stream<List<Integer>> stream = Stream.of(Arrays.asList(1,2), Arrays.asList(3, 4, 5));
stream.flatMap(list -> list.stream()).forEach(i -> System.out.println(i));


实现List<Data1>和List<Data2>根据Id进行连接,将连接结果输出为一个List<Data3>:
List<UserResult> userResultS = users.stream().flatMap(x -> userVos.stream()
                .filter(y -> x.getId() == y.getId())
                .map(y -> new UserResult(x.getName(),x.getIdCard(),y.getNameVo(),y.getIdCardVo())))
                .collect(Collectors.toList());
        System.out.println(userResult


Map<Integer, ListContainer> map = Maps.newHashMap();
    List<AClass> aClassList1 = Lists.newArrayList();
    AClass aClass = new AClass(1, "zhuoli1", "haha1");
    aClassList1.add(aClass);
    aClassList1.add(new AClass(2, "zhuoli2", "haha2"));
    aClassList1.add(new AClass(3, "zhuoli3", "haha3"));
 
    List<AClass> aClassList2 = Lists.newArrayList();
    aClassList2.add(aClass);
    aClassList2.add(new AClass(5, "zhuoli5", "haha5"));
    aClassList2.add(new AClass(6, "zhuoli6", "haha6"));

    /*交集*/
    /*[AClass(id=1, name=zhuoli1, description=haha1)]*/
    List<AClass> intersectResult = aClassList1.stream().filter(aClassList2::contains).collect(Collectors.toList());
    System.out.println(intersectResult);
 
    /*并集*/
    List<AClass> unionResult = Stream.of(aClassList1, aClassList2).flatMap(Collection::stream).distinct().collect(Collectors.toList());
    assertEquals(unionResult.size(), 5);

    /*差集*/
    /*[AClass(id=2, name=zhuoli2, description=haha2), AClass(id=3, name=zhuoli3, description=haha3)]*/
    List<AClass> differenceResult = aClassList1.stream().filter(x -> !aClassList2.contains(x)).collect(Collectors.toList());
    System.out.println(differenceResult);

    map.put(1, new ListContainer(aClassList1));
    map.put(2, new ListContainer(aClassList2));
       /*合并多个list*/
    List<AClass> aClassListResult = map.values().stream().flatMap(listContainer -> listContainer.getLst().stream()).collect(Collectors.toList());
    /*注意跟并集的区别*/
    assertEquals(aClassListResult.size(), 6);
    System.out.println(aClassListResult);

  

jdk8

标签:assert   username   最小   atm   integer   idcard   sem   desc   map   

原文地址:https://www.cnblogs.com/xingminghui111/p/13619162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!