Hash
陆圈圈呀~
这个作者很懒,什么都没留下…
展开
-
HashMap
1.HashMap的概述HashMap 是基于哈希表的 Map 接口的非同步实现。这个实现提供所有可选的映射操作, 并允许使用 null 值和 null 键。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“)。2.HashMap的数据结构横排表示数组,纵排表示数组元素【实际上是一个链表】equals方法与hashcode的重写Object.e...原创 2019-09-14 10:13:55 · 81 阅读 · 0 评论 -
哈希冲突
什么是哈希冲突概念哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。 键(key)经过hash函数得到的结果作为地址去存放当前的键值对(key-value)(这个是hashmap的存值方式),但是却发现该地址已经有值,就会产生冲突。(自己理解)不同的的key经过hash函数去存放当前键值对时,但经过key转换为hashco...原创 2019-09-14 10:14:22 · 156 阅读 · 0 评论 -
HashTable,HashMap的区别
HashMap和Hashtable都实现了Map 接口,但是具体要使用哪一个,需要先了解它们存在怎样的区别,然后再根据具体的情况做出选择。线程问题HashMap是非synchronized的,而Hashtable是synchronized的。这说明Hashtable是线程安全的,而且多个线程可以共享一个Hashtable;(synchronized 关键字,代表这个方法加锁,相当于不管哪一个...原创 2019-09-14 10:14:09 · 120 阅读 · 0 评论 -
重写hashcode与equlas
重写hashcode与equlas的目的就是保证存放到Set集合或者Map中键值对的元素的唯一性。不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)重写equlas的原因:对任何非空引用值x,y引用同一对象时,返回的是true。重写equlas之后,就必须重写ha...原创 2019-09-14 10:13:14 · 158 阅读 · 0 评论