使用Java 8,将List/Set集合按条件拆分为多个集合的方法。

一、将List转换为两个List集合。

    Set同理也可进行转换。

//创建集合
List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
//使用stream流进行分组
Map<Boolean, List<Integer>> preAvg = list.stream()
        .collect(Collectors.groupingBy(x -> x < 2 || x > 4));
List<Integer> tr = preAvg.get(true);
List<Integer> fa = preAvg.get(false);
System.out.println("true" + tr);
System.out.println("false" + fa);
//使用filter过滤
List<Integer> collect = list.stream().filter(x -> x < 2 || x > 4))
                .collect(Collectors.toList());
//输出满足过滤条件的集合数据
System.out.println("true" + collect);
//创建集合
 Set<Integer> set = new HashSet<>();
 set.add(1);
 set.add(2);
 set.add(3);
 set.add(4);
 set.add(5);
//使用stream流进行分组
Map<Boolean, List<Integer>> preAvg = set.stream()
        .collect(Collectors.groupingBy(x -> x < 2 || x > 4));
List<Integer> tr = preAvg.get(true);
List<Integer> fa = preAvg.get(false);
System.out.println("true" + tr);
System.out.println("false" + fa);
//使用filter过滤
List<Integer> collect = list.stream().filter(x -> x < 2 || x > 4))
                .collect(Collectors.toList());
//输出满足过滤条件的集合数据
System.out.println("true" + collect );

猜你喜欢

转载自blog.csdn.net/qq_42080073/article/details/103393251