首页 > 编程语言 > 详细

JAVA Collection 子接口之 Set

时间:2020-02-16 19:45:55      阅读:69      评论:0      收藏:0      [点我收藏+]

摘抄自 b站尚硅谷JAVA视频教程

技术分享图片

 

Set接口有三个实现类:

/----HashSet: Set接口的主要实现类;线程不安全的;可以存储null值;底层:数组+链表

  /----LinkedSet:作为HashSet的子类,增加了Link,使得遍历的时候,可以按照添加的顺序遍历.对于频繁的遍历,效率更高

/----TreeSet:使用红黑树实现,可以对添加元素进行自定义排序.添加的元素必须是同一类.

   添加的类必须是可比较的,有两种方法:Comparable 和 Comparator 两种方式.

 

向HashSet 添加的类,一定要重写 hashCode方法和equals方法,且尽可能保持一致性.

HashSet添加新元素 a :

  通过hash算法,计算hash值,通过某种映射映射到数组对应的索引上;

  1 若该索引位置没有元素,则添加;

  2 若有元素 b ,则比较hash值,若hash值不同,则添加;

  3 若hash值相同,则调用equals方法,若返回结果为false,则添加,否则添加失败.

  在 2 3情况中,若 a元素添加成功:

    JDK 7 : 元素a放入数组,指向元素b

    JDK 8 : 元素b不变,指向元素a

技术分享图片

 

 

 技术分享图片

 

 技术分享图片

 

技术分享图片

 

 

 技术分享图片

 

JAVA Collection 子接口之 Set

原文:https://www.cnblogs.com/superxuezhazha/p/12317739.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!