Comparator<T>和接口 Comparable<T>
这个两个接口的作用对象是不同的。
Comparator<T>强行对某个对象 collection 进行整体排序 的比较函数。
这个是对集合中的元素进行排序的。
Comparable<T>此接口强行对实现它的每个类的对象进行整体排序。
这个是让某个对象自身具备比较性的。
hashCode()和equals(Object obj)
hashCode()这个涉及到底层是哈希表结构的集合的存储排序问题。
底层是哈希表数据结构的集合存放元素,是根据hashCode()方法算出来的值来判断存放的位置的
同时取出的时候也是根据这个去查找的。
equals(Object obj)是根据引用值来判断两个对象是不是引用的同一个地址。也就是说是根据内存地址
来判断两个对象是不是一样的。如果两个对象的内存地址一样,哈希表结构的集合当然只存一个。
集合在没有序列化以前,内部其实存的是内存地址。 |