给定以下详细信息,我需要编写一个返回Object的方法Person
:
public class Person {
private String firstName;
private String lastName;
private int deskNo;
private String departmentName;
...
}
// this class also contains get methods for each argument
对象Person
存储在中HashMap
,其中Key与lastName
每个对象相同。价值显然是Person
客体。
private final Map<String, Person> employeeHM = new HashMap<>();
...
employeeHM.put("Doe", new Person("Jon", "Doe", 14, "Sales");
我通过几种解决方案来解决此问题,但在每种情况下均失败。有没有一种方法可以直接比较firstName
与lastName
并返回匹配的对象?我的想法之一是使用aSet
或a Colleciton
,但是我相当确定这会使事情变得过于复杂。
@Override
public Person findPersonByFirstName(String firstName) {
// ?
}
只需遍历您的地图并找到名字正确的人:
private Person getPersonByFirstName(String firstName) {
for (Person p : employeeHM.values()) {
if (p.getFirstName().equals(firstName))
return p;
}
return null;
}
请注意,这将使您找到的第一个人具有正确的名字。如果多个人确实具有相同的名字,那么您获得的名字可能是随机的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句