使用Java 8 Streams如何使用一个列表获取两个不同的列表

Reddy Ranga:

假设我有员工数据列表。

class Employee {
   private long id;
   private String name;
   private int age;
   // Constrctor
   // setters & getters
}
List<Employee> empList = ...;

使用上面的empList,如何使用Java8流年龄> 20的两个不同列表分成一个列表,将年龄<20的两个列表分成一个列表

邦达连科:

你可以用 Collectors.partitioningBy

public static void main(String[] args) {
    List<Employee> employeeList = Arrays.asList(new Employee(10), new Employee(15),
            new Employee(21), new Employee(22));

    Map<Boolean, List<Employee>> employeeGroups = employeeList.stream().
                    collect(Collectors.partitioningBy(s -> s.getAge() > 20));

    System.out.println(employeeGroups.get(false));
    System.out.println(employeeGroups.get(true));
}

输出:

[Employee{age=10}, Employee{age=15}]
[Employee{age=21}, Employee{age=22}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java 8流将两个或更多不同对象列表的值设置为一个对象?

如何使用 Java 8 合并两个不同类型的自定义对象列表

如何使用Stream API Java 8一起打印两个列表?

使用 Java 8 Streams 根据另一个列表过滤列表

如何在Java8流中将两个String列表合并为一个列表而不重复

Java 8将数据从一个列表分区到两个单独的列表

使用Java 8迭代和过滤两个列表

使用Java8过滤两个列表

比较两个对象列表并通过比较java 8中两个列表的一个属性形成一个新列表

如何筛选使用Java 8个流两个列表对象?

Java的8:如何把一个列表转换成使用lambda列表的列表

使用Java 8根据特定值将两个pojo列表合并到另一个pojo列表中

使用Java 8合并具有唯一ID的两个列表中的对象

Java 8 Stream:如何从列表中的一个列表属性获取新列表

JAVA 8:如何使用2流合并两个列表

Java的8两个列表流

使用Java 8获取列表的最后一个非null元素

使用Java8流过滤列表并获取第一个元素

如何使用带有地图和列表的Java 8 Streams计算两个子组的总数

循环多个不同类型的列表并使用 java 8 lambda 表达式创建另一个列表

使用Java 8个流在两个列表相同的位置比较元素

使用Java8使用另一个列表过滤列表

如何使用Java 8流通过一个分离条件列表

如何在Java-8中合并来自同一关系的两个列表

Python:当您使用两个循环和一个条件时如何获取列表列表?

使用 Java 8 Streams 从另一个不同类型的集合更新集合

如何使用JAVA流8必要时修改某些值合并的POJO两个列表

如何使用Java 8流通过其他的对象列表值与过滤器,使一个新的列表?

如何使用 Java 8 lambdas 将对象添加到另一个列表内的列表中