Java Collection HashSet vs HashMap

时间:2014-12-08 06:48:36

标签: java memory collections hashmap hashset

我对使用Collection关于记忆的最佳做法有疑问。我需要调用一个经常返回(Key,Value)对的方法,以便哪种方式最好,使用HashMap或创建包含Key和value的Object并将此对象保存在HashSet中?

谢谢&问候。

1 个答案:

答案 0 :(得分:4)

这取决于您是否需要仅根据密钥或密钥和值来搜索数据结构。

  • 如果您仅使用密钥进行搜索(例如map.containsKey(key)),则应使用HashMap

  • 如果您搜索是否存在键值对(即set.contains(new Pair(key,value)),则应使用包含这些对的HashSet

要考虑的另一件事是如何确定元素的唯一性。如果仅由密钥确定,则应使用HashMap。如果它由键和值确定(即,您可以使用不同的值显示相同的键两次),则必须使用HashSet,因为HashhMap不允许相同的键出现超过一次。