HashSet和HashMap的区别是什么?

HashMap

  • 实现 Map 接口
  • 键值对的方式存储
  • 新增元素使用 put(K key, V value) 方法
  • 底层通过对 key 进行 hash,使用数组 + 链表或红黑树对 key、value 存储

HashSet

  • 实现 Set 接口
  • 存储元素对象
  • 新增元素使用 add(E e) 方法
  • 底层是采用 HashMap 实现,大部分方法都是通过调用 HashMap 的方法来实现

 

注:JDK 1.8