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

如何用Stream API处理对象数组列表?改写Java循环方法为流式实现

使用Stream API改写后的方法实现

改写后的代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public List<AddNewSchoolBean> getEmployeeList() {
    try {
        List<Object[]> empList = Dao.getEmpDetailsFromUserMst();
        return empList.stream()
                .map(obj -> AddNewSchoolBean.builder()
                        .employeeId(obj[0].toString())
                        .employeeName(obj[1].toString())
                        .schoolName(obj[2].toString())
                        .build())
                .collect(Collectors.toCollection(ArrayList::new));
    } catch (Exception e) {
        e.printStackTrace();
        return new ArrayList<>();
    }
}

关键改动说明

  • 移除了手动创建ArrayList并循环添加的冗余逻辑,改用Stream的map操作直接将每个Object[]转换为AddNewSchoolBean实例
  • 用collect(Collectors.toCollection(ArrayList::new))收集结果,确保返回ArrayList类型,和原方法的返回类型完全一致;如果对返回的List实现没有严格要求,也可以用更简洁的Collectors.toList()
  • 原逻辑中empList.size() != 0的判断可以省略,因为空列表的stream()执行后会直接返回空集合,和原逻辑结果一致
  • 异常处理部分保留原有打印堆栈的行为,返回空ArrayList,和原方法的异常分支逻辑完全对齐

内容的提问来源于stack exchange,提问作者parikshit verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:22:17