假设我有员工数据列表。
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] 删除。
我来说两句