List Set Map读书笔记

1、List:一种知道索引位置的集合。可以有多个元素引用相同的对象,即允许重复。

2、Set:不允许重复的集合。知道某物存在于集合中,不允许重复。

3、Map:用键值对存储数据。两个key可以引用相同的对象,但是key不能重复。

 

HashSet:保存对象不重复,对象要复写 equals,hashCode方法

4、hashSet对象的addAll方法,可以复制其他集合 的元素,效果就跟一个一个加进去一样的

5、引用相等性:引用到堆上同一个对象的两个引用是相等的。这两个引用的hashCode值也是相同的。

6、对象相等性:堆上的两个不同对象在意义上相同

7、HashSet通过Hashcode来快速存取数据,通过hashCode可以很快的计算出对象所在的位置,不必一个个从头找。但是hashCode相同不能保证对象是相等的,因为hashCode使用的杂凑算法可能刚好让不同对象传回来相同的杂凑值。越糟糕的杂凑算法越容易碰撞。HashSet在对比的时候,发现同样的hashCode有多个对象,会使用equals方法判断是否完全相同。所以,hashCode用来缩小寻找成本,最终还是equals来判断是否是相同的对象。

8、有相同的hashCode值两个对象不一定相同,两个对象相等,hashCode值一定相同。

9、所以equals被覆盖过,hashCode()方法也必须被覆盖。

TreeSet:防止重复,保持有序

10、TreeSet对象需要实现Comparable接口,或者传入实现的Comparator接口的对象来构造TreeSet对象。让它知道如何排序存储。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值