要求是流式传输一组对象,筛选某些条件,并仅收集字符串集中的雇员 IDclass Employee { private String empId; private int type; public int getType() { return type; } public String getEmpId() { return empId; }}在筛选以下语句时employees.stream().filter(x-> x.getType() == 1).collect(Collectors.toSet());返回一个,而不是我只想收集empId,即Set<Employee>Set<String>注意:不能使实例变量成为私有变量以外的任何内容。
3 回答
繁星coding
TA贡献1797条经验 获得超4个赞
用于将实例映射到相应的员工 ID。map()
Employee
Set<String> empIds = employees.stream() .filter(x-> x.getType() == 1) .map(Employee::getEmpId) .collect(Collectors.toSet());
慕姐4208626
TA贡献1852条经验 获得超7个赞
employees .stream() .filter(x-> x.getType() == 1) .map(Employee::getEmpId) .collect(Collectors.toSet());
将返回包含员工 ID 的 。Set<String>
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
如果您还需要原始文件,则可以改用 。Employee
toMap
Map<String, Employee> employeesById = employees.stream() .filter(e-> e.getType() == 1) .collect(Collectors.toMap(Employee::getEmpId, Function.identity()));
如果您需要稍后解决员工问题,这尤其有用。如果这不适用,则首选上述解决方案。
此外,仍然可以通过以下方式获得:Set
Set<String> employeeIds = employeesById.keySet();
添加回答
举报
0/150
提交
取消