为了账号安全,请及时绑定邮箱和手机立即绑定

Java 8 将员工名字从 Robert 更改为 Ronald 并返回原始列表

Java 8 将员工名字从 Robert 更改为 Ronald 并返回原始列表

炎炎设计 2022-06-30 18:58:58
Employee {    String firstName;     // Few other fields here} e1.firstName = Roberte2.firstName = Donald数组列表中有 15 个这样的对象我想更改原始列表,以便凡 firstName 是 Robert 它使用 java 8 API 变成 Ronald
查看完整描述

4 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

Emplist.stream().map((emp)->{

If(emp.getName().equals("robert")){

emp.setName("ronald") ;

return emp;

}else{

return emp;}}).collect(Collectors.toList());


查看完整回答
反对 回复 2022-06-30
?
UYOU

TA贡献1878条经验 获得超4个赞

empList = (ArrayList<Employee>) empList.stream()
            .filter(emp -> emp.getFirstName().equalsIgnoreCase("Robert"))
            .peek(emp -> emp.setFirstName("Ronald"))
            .collect(Collectors.toList());

由于您想更改原始列表,请将收集的列表分配给原始列表


查看完整回答
反对 回复 2022-06-30
?
温温酱

TA贡献1752条经验 获得超4个赞

一个简单的 forEach 版本(get/set 方法被忽略)


 list.forEach(e -> {

     if (e.firstName.equals("Robert")) {

        e.firstName = "Ronald";

     }

 });


查看完整回答
反对 回复 2022-06-30
?
RISEBY

TA贡献1856条经验 获得超5个赞

您可以填充Map要转换为的名称。


import java.util.*;

import java.util.stream.Collectors;


public class Employee {

    private String firstName;


    public String getFirstName() {

        return firstName;

    }

    public void setFirstName(String firstName) {

        this.firstName = firstName;

    }

    public Employee(String firstName) {

        this.firstName = firstName;

    }

    @Override

    public String toString() {

        return String.format("Employee [firstName=%s]", firstName);

    }

    public static void main(String[] args) {

        Map<String, String> dict = new HashMap<String, String>() {

            private static final long serialVersionUID = -4824000127068129154L;

            {

                put("Robert", "Donald");

            }

        };

        List<Employee> employees = Arrays.asList("Adam", "James", "Robert").stream().map(Employee::new).collect(Collectors.toList());

        employees = employees.stream().map(emp -> {

            if (dict.containsKey(emp.getFirstName())) {

                emp.setFirstName(dict.get(emp.getFirstName()));

            }

            return emp;

        }).collect(Collectors.toList());

        employees.stream().forEach(System.out::println);

    }

}


查看完整回答
反对 回复 2022-06-30
  • 4 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信