集合

2018-07-23  本文已影响0人  mrjunwang

Java容器可分为两大类:

着重标出的那些就是我们用得最多的容器。

一、ArrayList和Vector的区别

共同点:

区别:

二、HashMap和Hashtable的区别

共同点:

区别:

三、List和Map的区别

共同点:

不同点:

从源码可以得知,在插入元素的时候是先算出该对象的hashCode。如果hashcode相等话的。那么表明该对象是存储在同一个位置上的。
如果调用equals()方法,两个key相同,则替换元素
如果调用equals()方法,两个key不相同,则说明该hashCode仅仅是碰巧相同,此时是散列冲突,将新增的元素放在桶子上
一般来说,我们会认为:只要两个对象的成员变量的值是相等的,那么我们就认为这两个对象是相等的!因为,Object底层比较的是两个对象的地址,而对我们开发来说这样的意义并不大~这也就为什么我们要重写equals()方法

重写了equals()方法,就要重写hashCode()的方法。因为equals()认定了这两个对象相同,而同一个对象调用hashCode()方法时,是应该返回相同的值的!
[集合的基本问题](https://www.jianshu.com/p/80c999ebb5f0

image.png

什么是哈希?
将任意长度的输入,通过散列函数计算后,转为固定长度的输出。输出就是哈希值。

上一篇下一篇

猜你喜欢

热点阅读