java - 如何流式传输和收集对象集合的实例方法结果?

标签 java java-stream

要求是流式传输一组对象,根据某些条件进行过滤,并仅收集一组字符串中的员工 ID

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<Employee>相反,我只想收集 empId 即 Set<String>

注意:不能将实例变量设为私有(private)以外的任何内容。

最佳答案

使用 map()Employee 实例映射到相应的 Employee ID。

Set<String> empIds =
    employees.stream()
             .filter(x-> x.getType() == 1)
             .map(Employee::getEmpId)
             .collect(Collectors.toSet());

关于java - 如何流式传输和收集对象集合的实例方法结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514620/

相关文章:

java - 调整标签图标大小

java - 使用流计算字符串中字符的出现次数

Java 8 lambda : convert Collection to Map of element, 迭代位置

java - 累积 Java Stream,然后才处理它

java - Project Euler 14(Collat​​z 猜想),Java 中实现缓存的问题

Java 密码学生成 key 的可移植性

Java 8 流矩阵乘法比 For 循环慢 10 倍?

functional-programming - 为什么在 Kotlin 中链接 .map() 和 .filter() 不能按预期工作?

java - 如何将 facebook 登录与 Struts2 集成?

java - 提取第一个特殊字符后的字符串