HashMap 中hash table 定位算法:int hash = hash(key.hashCode()); int i = indexFor(hash, table.length); 其中indexFor和hash源码如下:/** * Applies a supplemental ...
分类:
编程语言 时间:
2015-06-08 08:22:33
阅读次数:
207
想要明白hashCode的作用,必须要先知道java中的集合。(不明白的请看Java基础之集合框架详解(二)List篇和Java基础之集合框架详解(三)Set篇)
Java中的Collection集合有两类,一类是List,另一类是Set,前者集合内的元素是有序的,元素可以重复;后者元素无序且元素不可重复。而我们通常使用Object.equals方法来判断两个元素是否重复。即当我们想查找一个元素中是...
分类:
编程语言 时间:
2015-06-05 15:53:17
阅读次数:
153
Set(1)Set集合的特点 无序(存入和取出顺序),唯一 (2)HashSet集合 A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相同...
分类:
编程语言 时间:
2015-06-03 15:32:07
阅读次数:
128
1、字符串不变性
下面这张图展示了这段代码做了什么
1
2
String s =
"abcd";
s = s.concat("ef");
2、equals()方法、hashCode()方法的区别
HashCode被设计用来提高性能。equals()方法与hashCode()方法的区别在于:
如果两个对象相等...
分类:
编程语言 时间:
2015-05-29 23:10:20
阅读次数:
147
Set集合1.HashSet只去重复, 没有顺序HashSet的add方法会调用hashCode和equals, 所以存储在HashSet中的对象需要重写这两个方法.2.TreeSet去重复, 并且可以按照某种顺序排序TreeSet的add方法会将对象转为Comparable, 然后调用compar...
分类:
编程语言 时间:
2015-05-29 15:45:12
阅读次数:
240
普通哈希:var x =hash(dataKey) % N一致性哈希:将数据的key的hashcode与存放数据的节点(如缓存节点)的IP(或服务器名)的hashcode都分布到同一个环形数值空间,比如0~2^32-1。然后,把数据的hashcode沿着顺时针方向找第一个存放数据的节点的hashco...
分类:
其他好文 时间:
2015-05-28 22:46:55
阅读次数:
244
HashMap
HashMap的工作原理:
HashMap是基于hash算法的原理,使用put(key, value)方法来存储对象,使用get(key)方法来获取对象。
当我们使用put()方法时,需要给它传递一个键值对,然后它调用键的hashCode()方法,返回的hashCode用于找到对应的bucket的位置(即table的下标)来储存Entry对象。
如果该key对应的键...
分类:
其他好文 时间:
2015-05-27 12:20:34
阅读次数:
218
------- android培训、java培训、期待与您交流! ----------19.01 集合的特点和数据结构总结HashSet、HashMap、Hashtable判断元素唯一性的方式:通过对象的hashCode和equals方法来完成元素唯一性如果对象的hashCode值不同,那么不用判断...
分类:
编程语言 时间:
2015-05-26 23:26:20
阅读次数:
185
内容:通过获取锁的顺序来避免死锁。例如:银行账户转账问题,两个用户转账的话,如果采用一般的synchronized嵌套的话,容易造成死锁,现在我们通过类似哲学家问题的解决方案一样:先获取同一个锁,才有资格获取下一个。而判断是通过System.identityHashCode()来生成类的hashcode()的返回值作为唯一标识,相同的话,我们再加一把锁。
class Account {
pri...
分类:
编程语言 时间:
2015-05-26 21:28:42
阅读次数:
128
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的...
分类:
编程语言 时间:
2015-05-26 16:40:21
阅读次数:
152