HashMap中使用object的一个键多个值

Lou*_*uis 0 java hashmap

如果我想要"id"是关键,"name","phoneNumber","eamil"是值.

public class Personal {

    private int id;
    private String name;
    private int phoneNumber;
    private String email;

    public Personal(int id){
        this.id = id;
    }

    //getter and setter here
}
Run Code Online (Sandbox Code Playgroud)

输入很多人数据后.我可以通过id获取数据.

output ex: map.get(100001); // [Dan, 123456, Dan@gmail.com]
           map.get(100002); // [Kim, 123343, Kim@gmail.com] 
           ...
Run Code Online (Sandbox Code Playgroud)

问题:实现此HashMap的最佳方法是什么?

非常感谢!

NPE*_*NPE 8

如果ID是唯一的并且是一成不变的,您可以使用:

Map<Integer,Personal> map = new HashMap<Integer,Personal>();
Run Code Online (Sandbox Code Playgroud)

要添加对象p:

map.put(p.getId(), p);
Run Code Online (Sandbox Code Playgroud)

然后

map.get(100001);
Run Code Online (Sandbox Code Playgroud)

会返回相应的对象.

如果ID可以重复或可以更改,则事情变得更加复杂.如果是这种情况,请解释您的确切要求,以便我们进一步提供帮助.