java - HashMap使用对象实现一键多值

标签 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
}

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

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

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

非常感谢!

最佳答案

如果 ID 是唯一的并且是固定的,您可以使用:

Map<Integer,Personal> map = new HashMap<Integer,Personal>();

添加对象p:

map.put(p.getId(), p);

然后

map.get(100001);

将返回相应的对象。

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

关于java - HashMap使用对象实现一键多值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13915754/

相关文章:

java - 在 WebServices 插件设置中设置有效的 CXF 路径

java - 为什么HashMap执行多次后会返回null和字符串值?

Java ConcurrentHashMap 损坏的值

java - Fork/Join 结合 FileChannel 来复制文件

java - 当表上的特定列发生更改时,如何阻止 JTable TableModelListener 触发或监听

java - 如何简化基于先前过滤结果的流搜索?

java - 映射条目出现在 HashMap.entrySet() 中,但不在内部 HashMap.table 中

java - 无法在子进程中使用 HashMap 作为 TIMESTAMP

java - 如何按 String[index] 对 hashmap String, Collection<String []>> 进行排序

java - 即使在编译器选项中禁用 javadoc 之后,Eclipse 仍提示 Javadoc,并且不一致