You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Stream从Employee实体列表中提取所有k1字段的值

你代码的问题是误用了filter方法:filter的作用是筛选符合判断条件的元素,不会对流内的元素类型做转换,自然没法直接提取字段值。要提取所有Employee对象的k1字段,需要用map方法做元素映射,正确写法如下:

List<Employee> employeeList = findAll();
List<Double> k1List = employeeList.stream()
        // 将每个Employee对象映射为其k1字段值,也可以写成lambda形式:employee -> employee.getK1()
        .map(Employee::getK1)
        .collect(Collectors.toList());

如果需要额外过滤掉k1为null的无效值,可以加一层过滤逻辑:

import java.util.Objects;

List<Double> k1List = employeeList.stream()
        .map(Employee::getK1)
        .filter(Objects::nonNull)
        .collect(Collectors.toList());

内容的提问来源于stack exchange,提问作者daniel sinaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 20:03:03