Ran*_*ddy 1 java java-8 java-stream
假设我有员工数据列表。
class Employee {
private long id;
private String name;
private int age;
// Constrctor
// setters & getters
}
List<Employee> empList = ...;
Run Code Online (Sandbox Code Playgroud)
使用上面的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));
}
Run Code Online (Sandbox Code Playgroud)
输出:
[Employee{age=10}, Employee{age=15}]
[Employee{age=21}, Employee{age=22}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |