自定义hashMap,用于为不同的密钥

时间:2017-10-12 01:47:48

标签: java android hashmap

最近在面试中提出了这个问题,面试官更关注任何为此目的服务的第三方图书馆。

如果我是

的员工类
String firstName;
int id;
String lastName;

如果我想使用id搜索员工,我需要在我的HashMap中使用id作为键和employee作为值

HashMap<Integer,Employee>

如果我现在想将我的密钥用作firstName,那么我需要将另一个hashMap设为HashMap<String,Employee>

是否有任何标准库,我不需要使用不同的密钥制作多个地图以进行搜索。 如果我想使用id + firstName作为搜索条件并将值作为Employee对象,该怎么办? 如果有10个属性,我需要设计一个数据结构来实现这个目的呢?

2 个答案:

答案 0 :(得分:0)

您可以使用SQLite(标记为Android)数据库,以便您可以使用任何属性搜索记录。

答案 1 :(得分:0)

您只需使用一个HashMap<String,Employee>

由于密钥使用包含属性名称作为前缀的String,例如idfirstName, lastName followed by a separator like:`以及之后的值。

这也允许使用属性组合作为键。

如果您现在将一个员工实例添加到HashMap,则添加三个具有相同值的条目。

示例:

employee1 = Employee {
  id: 1,
  firstName: "John",
  lastName: "Doe"
}

HashMap: {
   "id:1" -> employee1
   "firstName:John" -> employee1
   "lastName:Doe" -> employee1
}