List、Set、Map判断两个对象相等的标准

时间:2021-07-20 22:24:20

转自:http://blog.csdn.net/totally123/article/details/52162182

1、List
通过equals()方法比较返回true即可。

2、HashSet
先比较两个对象hashCode()方法返回的值是否相等,如果不相等就认为两个对象是不相等的,如果两个对象的hashCode相等就继续调用equals()方法进一步判断两个对象是否相等,如果equals()方法返回true认为两个对象相等,返回false认为两个对象不相等。

3、TreeSet
两个对象通过compareTo(Object obj)方法比较是否返回0:如果返回0,则认为相等,否则不相等。

4、HashMap、HashTable
key:两个key通过equals()方法比较返回true,两个key的hashCode值也相等;
value:value与另外一个对象通过equals()方法比较返回true即可。

5、TreeMap
两个key值通过compareTo()方法返回0,TreeMap即认为这两个key是相等的。