什么应该使用HashMap或HashSet?

时间:2012-09-28 06:47:13

标签: java collections

如果给您一组记录(例如,包含Id,姓名和年龄字段的用户记录),您需要发送一组记录 到了简单遍历的视图。那么哪个集合更适合在HashMap和HashSet之间使用 为什么?你会在User类中使用什么哈希码生成代码来提高效率?

2 个答案:

答案 0 :(得分:1)

HashSet本身就是HashMap的一个实现,所以最终它并没有太大的区别。但是,由于您正在与用户打交道,我认为最终您需要按ID访问User个对象。

假设每个用户都有唯一的ID,您可以使用ID为密钥的HashMap和整个User对象作为值。这将允许您遍历和访问特定的用户数据。

答案 1 :(得分:1)

HashMap和HahSet使用不同的数据结构来存储对象。

HashMap 中,您可以将对象存储在键值对中

HashSet 中,您只将存储为对象。


以下是它们之间的一些区别:


  1. HashSet是Set接口的实现。 HashMap 是Map接口的实现。
  2. HashSet仅存储值。 HashMap以键值的形式存储数据 对
  3. HashSet不允许HashMap允许的重复值/对象 重复值/对象但不允许重复键。
  4. HashSet比hashmap慢。 HashMap比hashset更快 因为这些值与唯一键
  5. 相关联
  6. 在HashSet中,成员对象用于计算哈希码值 对于两个对象可以是相同的,因此使用了equal()方法 检查是否相等,如果它返回false表示两个对象是 在HashMap中,使用密钥对象计算哈希码值。