gpt4 book ai didi

java - Map - 搜索对象并将某些值添加到集合中

转载 作者:行者123 更新时间:2023-12-01 19:26:50 25 4
gpt4 key购买 nike

继上一个问题之后,我想迭代 map 中的对象值,如果找到某些结果,则将它们添加到集合/列表中,然后返回该集合/列表。

我的雇主类别代码:

public class Employer {
Map<String, NewHire> employee = new HashMap<>();
}

public void addEmployee(String fullName, String age, String location, String JobTitle) {
NewHire newEmployee = new NewHire(age, location, JobTitle);
this.employee.put(fullName, newEmployee);
}

第二个目标代码:

public class NewHire {
private String age;
private String location;
private String jobTitle;
}

public NewHire(String aAge, String aLocation, String aJobTitle) {
this.age = aAge;
this.location = aLocation;
this.jobTitle = aJobTitle;
}

我添加了以下内容:

Employer CompanyA = new Employer();
CompanyA.addEmployee("JohnSmith1", "22", "London", "Front Office");
CompanyA.addEmployee("JohnSmith2", "23", "Paris", "Service Desk");
CompanyA.addEmployee("JohnSmith3", "22", "Paris", "Service Desk");
CompanyA.addEmployee("JohnSmith4", "21", "New York", "HR");

我现在想添加以下方法:

public NewHire findAnEmployee(String jobTitle)

我需要该方法执行的操作是查找在“服务台”中工作的所有员工,例如,将它们添加到集合中并返回该集合。如果没有找到该职位的人,则返回一条一般消息,指出没有找到在那里工作的人。

我正在努力了解如何做到这一点。

最佳答案

使用流API:

public Set<NewHire> findAnEmployee(String jobTitle) {
return employee.values().stream().filter(e -> e.getJobTitle().equals(jobTitle)).collect(Collectors.toSet());
}
CompanyA.findAnEmployee("Service Desk").stream().forEach(System.out::println);

我在 NewHire 类中实现了 getJobTitle 和 toString 方法...

关于java - Map<String, Object> - 搜索对象并将某些值添加到集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61291878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com