use*_*485 2 java lambda java-8 java-stream
比如,有一个班,员工
@Getter
Class Employee {
empId;
empName;
empDept;
}
Run Code Online (Sandbox Code Playgroud)
我试图从String部门的员工列表中获取逗号分隔的独特部门列表(例如:'销售','技术','运营','培训')
List<Employee> employees = getListOfEmployees();
String departments = getUniqueDepartments(employees);
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:
String getUniqueDepartments(final List<Employee> employees) {
return employees.stream().filter(emp -> emp.getEmpDept()!=null)
.map(emp -> String.format("'%s'", emp.getEmpDept()))
.collect(Collectors.joining(","))
}
Run Code Online (Sandbox Code Playgroud)
如何在此基础上添加distinct子句?
简单地说,distinct在collect还原操作之前添加中间操作,即:
...
...
.map(emp -> String.format("'%s'", emp.getEmpDept()))
.distinct()
.collect(Collectors.joining(","));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |