在HashMap中,如果需要使用多个属性组合作为key,可以将这几个属性组合成一个对象作为key。但是存在的问题是,要做get时,往往没办法保存当初put操作时的key object的reference,此时,需要让key object覆盖如下hashCode()和equals(Object obj...
分类:
编程语言 时间:
2015-09-05 12:23:36
阅读次数:
182
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?答:不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个...
分类:
编程语言 时间:
2015-09-04 23:59:07
阅读次数:
417
1.Integer a = 127;Integer b = 127;System.out.println(a.hashCode()==b.hashCode());System.out.println(a==b);System.out.println(a.equals(b));结果为:truetrue...
分类:
其他好文 时间:
2015-09-02 13:15:05
阅读次数:
381
equals()的作用是用来判断两个对象是否相等,在Object类中,equals(Object obj)是通过判断两个对象的地址是否相等(是否是同一个对象)来区分它们是否相等,源码:
public boolean equals(Object obj) { return (this == obj);}
因为Object类是所有类的父类,因此在子类中使用equals(Object ob...
分类:
编程语言 时间:
2015-08-30 01:02:25
阅读次数:
169
HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺序不同(除非在put的时候key已经按照hashcode排序号了,这种几率非常小)
单纯的HashMap是无法实现排序的,这的排序是指,我们将键值对按照一定的顺序put进HashMap里,然后在进行...
分类:
其他好文 时间:
2015-08-28 19:51:59
阅读次数:
206
【JavaSE】day05_Map接口_HashMap_hashCode
1.Map接口
1)java.util.Map
Map看起来像是一个多行两列的表格。每条记录分为两部分:key,value。
其中在一个Map中key是不允许重复的(equals比较)
2)常用实现类:java.util.HashMap(散列算法实现)
...
分类:
编程语言 时间:
2015-08-27 00:31:43
阅读次数:
172
1.==java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码:publicclassComAddr{
publicstaticvoidmain(String[]args)throwsException{
Strings1="nihao";
Strings2="nihao";
Strings3=newString("nihao");
System.out.println(s1==s2);//true
System.out.println..
分类:
编程语言 时间:
2015-08-26 20:20:04
阅读次数:
219
1:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相同:继续执行equals(...
分类:
编程语言 时间:
2015-08-25 21:26:30
阅读次数:
219
HashMap的put() 尊重:hashCode(); ==; equals()HashMap的remove() 尊重:hashCode(); == ; equals()HashMap的containsKey() 尊重:hashCode() ;== ;equals()HashMap的get() 尊...
分类:
其他好文 时间:
2015-08-21 00:01:49
阅读次数:
224