Set集合框架,使用比较少

时间:2024-4-12    作者:老大夫    分类: JAVA


Set及其实现类的特点

Set是Collection的子接口,用来存储无序的,不可重复的数据

  1. HashSet(主要实现类):底层是hashMap,即使用数组+单向链表+红黑树结构进行存储(JDK8.0中)
  2. LinkedHashSet(是HashSet的子类),在使用数组+单向链表+红黑树结构的基础上,又添加了一组双向链表,用于记录添加元素的先后顺序,即可以按照添加元素的顺序进行遍历。便于频繁的查询操作。
  3. TreeSet,使用红黑树,可以按照添加元素的指定属性大小遍历。

无序性

不是随机性,因为他是按照hashCode顺序保存,也是有一定规律的。只不过不是按照添加的顺序。

hashSet存储时 先计算出hashcode然后取模存储到指定位置,如果有第二个数据存储到同一个位置这时会比较他们的equals,如果过相同则不会存入,不同的话会在位置上生成一个链表存储取模一致的数据。

无序性和添加元素的位置有关,不像是ArrayList一样按照添加顺序依次紧密排列,

不可重复性:

添加到Set中的数据不能是相同的,比较的标准是比较HashCode,与equals比较的结构。

开发中使用频率及场景

相较于List、Map。这个Set使用场景比较少。
主要用来过滤重复数据

Set中常用方法

常用方法即为Collection中定义的15个方法,由于没有索引减少了很多操作。

结论

添加到HashSet或者LinkedHashSet的要求:
元素所在的类要重写equals方法和hashCode方法要保持一致性,使用idea自动生成就好

版权所有:伸手党盘
文章标题:Set集合框架,使用比较少
文章链接:https://ssdpan.cn/?post=383
本站文章来源于网络搜集和原创,仅供学习使用,未经授权请勿用于任何商业用途,如有侵权及时联系删除

推荐阅读:


扫描二维码,在手机上阅读