全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

set有哪些实现类?

发布时间:2022-08-01 17:04:59
发布人:qyf

set有哪些实现类

  HashSet

  HashSet是set接口的实现类,set下面最主要的实现类就是HashSet(也就是用的最多的),此外还有LinkedHashSet和TreeSet。

  HashSet是无序的、不可重复的。通过对象的hashCode和equals方法保证对象的唯一性。

  HashSet内部的存储结构是哈希表,是线程不安全的。

  TreeSet

  TreeSet对元素进行排序的方式:

  元素自身具备比较功能,需要实现Comparable接口,并覆盖compareTo方法。

  元素自身不具备比较功能,需要实现Comparator接口,并覆盖compare方法。

  LinkedHashSet

  LinkedHashSet是一种有序的Set集合,即其元素的存入和输出的顺序是相同的。

  说一下 HashSet 的实现原理?

  HashSet实际上是一个HashMap实例,数据存储结构都是数组+链表。

  HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value都是一个统一的对象PRESENT。

  private static final Object PRESENT = new Object();

  HashSet中add方法调用的是底层HashMap中的put方法,put方法要判断插入值是否存在,而HashSet的add方法,首先判断元素是否存在,如果存在则插入,如果不存在则不插入,这样就保证了HashSet中不存在重复值。

  通过对象的hashCode和equals方法保证对象的唯一性。

  ArrayList 和 LinkedList 的区别是什么?

  ArrayList是动态数组的数据结构实现,查找和遍历的效率较高。

  LinkedList 是双向链表的数据结构,增加和删除的效率较高。

  更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助力你实现java程序员梦想。

相关文章

OKR与自驱力的关系是什么?

OKR与自驱力的关系是什么?

2023-10-14
office是什么软件类型?

office是什么软件类型?

2023-10-14
Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取