Java 如何从对象集合中流式传输和收集实例方法结果?
需求是流式传输一组对象,根据某些条件进行过滤,并在一组字符串中仅收集employeeIDJava 如何从对象集合中流式传输和收集实例方法结果?,java,java-stream,Java,Java Stream,需求是流式传输一组对象,根据某些条件进行过滤,并在一组字符串中仅收集employeeID class Employee { private String empId; private int type; public int getType() { return type; } public String getEmpId() { return empId; } } 在筛选以下语句时 employees.str
class 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());
返回一个Set
而我只想收集empId,即Set
注意:不能使实例变量成为私有变量以外的任何变量
employees
.stream()
.filter(x-> x.getType() == 1)
.map(Employee::getEmpId)
.collect(Collectors.toSet());
将返回包含员工ID的集合。使用map()
将员工
实例映射到相应的员工ID中
Set<String> empIds =
employees.stream()
.filter(x-> x.getType() == 1)
.map(Employee::getEmpId)
.collect(Collectors.toSet());
设置empid=
employees.stream()
.filter(x->x.getType()==1)
.map(Employee::getEmpId)
.collect(收集器.toSet());
如果您还需要原始的员工
,您可以使用toMap
Map<String, Employee> employeesById = employees.stream()
.filter(e-> e.getType() == 1)
.collect(Collectors.toMap(Employee::getEmpId, Function.identity()));
使用方法将Employee
转换为String
Set<String> employeeIds = employeesById.keySet();