我们一般使用equals都是为了比较对象的内容,而Object里面的equals方法却是比较对象的引用,如下:public boolean equals(Object obj) {
return (this == obj);
}所以当我们想要比较的是对象的内容时,需要重写equals方法,假设User类中有String name , int age 两个字段,用eclips...
分类:
编程语言 时间:
2014-12-06 14:08:52
阅读次数:
182
1 HashSet是主要的实现类,Set中常用的方法都是Collection下定义的。 2 无序性:无序性!=随机性。指元素在底层存储的位置是无序的 不可重复性:加入相同元素时,后面的元素不能加入进去 3 注意:要求加进Set中的元素,一定要重写equals和hashCode方法 才能保证Set中元...
分类:
其他好文 时间:
2014-12-06 11:22:41
阅读次数:
237
1.对象如何对比排序?
Java的基本类型如int, float, double都可以直接使用java.util.Arrays.sort(Object[])对比排序,那对象是如何比较排序的呢?我们定义的类都是继承Object类的,Object类的equals的方法,默认是比较两个对象是否相等(hashcode相同)
public boolean equals(Object obj) {...
分类:
编程语言 时间:
2014-12-04 21:39:34
阅读次数:
344
# hashMap [HashMap工作原理](http://www.importnew.com/7099.html) 我对hashMap的认识基本是对的,hashCode() and equals() is important for hashMap. 除了这个完全不知道 > 当重新调整HashMap大小的时候,确实...
分类:
其他好文 时间:
2014-12-04 14:09:29
阅读次数:
185
以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable?提供的哈希表。???
??
hashCode?的常规协定是:???
在?Java?...
分类:
编程语言 时间:
2014-12-03 17:21:05
阅读次数:
165
问题
重写(Override)equlas和hashCode方法时应考虑哪些问题?
精华回答
理论上讲(偏程序语言和数学层面)
equals() 定义了对象的相等关系(自反性、对称性、传递性)(有点抽象,更详细说明,请参考javadoc) 。
另外,它还具有一致性(也就是说,如果一个对象没有修改,那么这个方法应总是返回相同的值),此外,o.equals(nul...
分类:
其他好文 时间:
2014-12-01 11:31:15
阅读次数:
320
个人博客同步发布:effective
java-读书笔记-第三章 对于所有对象都通用的方法
第三章 对于所有对象都通用的方法
所有非final方法(equals、hashCode、toString、clone、finalize)都有明确的通用约定,因为它们被设计成是要被覆盖的,如果不遵守,基于散列的集合(HashMap、HashSet、HashTable)可能无法结合该类一起运作。...
分类:
编程语言 时间:
2014-12-01 01:15:59
阅读次数:
232
1.Collection 接口下的List和Set2.Map 接口下的hashMap 和TreeMap List 和Set的区别。List 允许重复的元素存在,Set不可以存在重复的元素。set中不允许存在重复的元素通过hashCode 和equals 方法来确定,只有当hashCode 相同的时....
分类:
编程语言 时间:
2014-12-01 00:43:21
阅读次数:
215
读完本文,你会了解到: 1. HashMap的设计思路和内部结构组成
2. HashMap中的一些概念: 什么是阀值?为什么会有阀值?什么是加载因子?它们有什么作用?
3. HashMap的性能问题以及使用事项
4. HashMap的源码实现解析
5. 为什么JDK建议我们重写Object.equals(Object obj)方法时,需要保证对象可以返回相同的hashcode值?...
分类:
编程语言 时间:
2014-11-30 15:34:12
阅读次数:
281
Java语言中,Object对象有个特殊的方法:hashcode(), hashcode()表示的是JVM虚拟机为这个Object对象分配的一个int类型的数值,JVM会使用对象的hashcode值来提高对HashMap、Hashtable哈希表存取对象的使用效率。
关于Object对象的hashCode()返回值,网上对它就是一个简单的描述:“JVM根据某种策略生成的”,那么这种策...
分类:
编程语言 时间:
2014-11-27 18:25:02
阅读次数:
210