输入:假设我有一个对象作为Person
。它有 2 个属性,即
ssnNo
- 社会保险号姓名
。
一方面我有一个 List
的 Person
对象(具有唯一的 ssnNo),另一方面我有一个 Map
包含 Person 的ssnNo
作为键,Person 的 name
作为值。
输出:我需要使用其 ssnNo 的人名。
问题:
在我上面提到的 2 种方法中,应该采用哪种方法,即使用列表或 map ? (我认为显而易见的答案是 map )。
如果是 map ,无论数据集是大是小,是否总是建议使用 map ?我的意思是 map 是否存在任何性能问题。
最佳答案
map 是必经之路。 map 的性能非常好,并且随着数据集越大,它们在查找列表方面的优势就越大。
当然,还有一些重要的性能考虑因素:
确保您有一个良好的哈希码(和相应的 equals)实现,这样您的数据就会均匀分布在 map 的各个桶中。
确保在分配 map 时预先确定 map 的大小(如果可能的话)。 map 会自动调整大小,但调整大小操作本质上需要将每个先前的元素重新插入到更大的新 map 中。
关于java - map 与列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513872/