java - 地图- 搜索对象并将某些值添加到集合中
问题描述
继上一个问题之后,我想遍历我的地图中的对象值,如果找到某些结果,将它们添加到集合/列表中,然后返回该集合/列表。
我的雇主类代码:
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 方法...
推荐阅读
- python - 尝试从 Django 表单运行 python 脚本
- php - FPDF 页脚获取在 foreach 行上声明的变量
- linux - 如何限制用户访问主文件夹
- java - 2020-12-16T16:27:57+00:00 的 DateFormat ParseException
- azure-devops - 使用 Azure DevOps 分叉 Github 存储库
- javascript - Firebase 功能消息发送错误,接收方无效
- python - 如何重置索引计数器?
- sql - 如何将单行分组为一个?
- javascript - 如何在javascript中将键值对绑定到标签值对?
- powerbi - 使用或避免使用 CALCULATE 来恢复过滤器有什么区别?