- 搜索对象并将某些值添加到集合中,java,dictionary,collections,set"/>

首页 > 解决方案 > 地图- 搜索对象并将某些值添加到集合中

问题描述

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

我的雇主类代码:

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)

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

我正在努力掌握如何做到这一点。

标签: javadictionarycollectionsset

解决方案


使用流 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 方法...


推荐阅读