当前位置: 代码迷 >> J2SE >> hash地图为什么要实现conparable
  详细解决方案

hash地图为什么要实现conparable

热度:198   发布时间:2016-04-23 20:20:24.0
hashmap为什么要实现conparable
hashmap中自定义一个类例如student为什么要implement comparable,老师说什么如果这个类产生的对象很多有可能用二叉树来存所以具备自然顺序。
但是实现了这个接口  也没什么用  又没法用它排序我以为能用它排序试了下没作用。那他到底干嘛的,   老师说的不理解。
求大神详细点指导下  感激不尽,别就丢下一句 我看不懂。。。
------解决方案--------------------
首先,你标题上的单词有点问题

当需要对一个对象进行排序时,该对象应该实现Comparable接口,并实现其唯一的方法:

int compareTo(T o)

在该方法里定义自己的排序规则;

当调用Arrays.sort(Object[] a)方法时则回调compareTo()方法,并按照自己的规则对对象数组进行排序;

其实对于这种问题,与其别人给你答案,不如自己学会利用搜索引擎,毕竟对于这行业来说,自学能力其实是很重要的;
------解决方案--------------------
 Comparable接口和Comparator接口是以元素的 比较性  挂钩的,也就是说实现了   Comparable接口的类,就具有比较性,这个比较性体现在调用Collection.sort()和Arrays,sort()  时,可以自动排序,也可以通过实现Comparator接口实现自定义的比较方式,使其进行自定义的排序,  HashMap里面存放的东西没有必要 实现这个接口,因为 是通过Hashcode计算地址的进行排序的,如果HashCode相等,则在通过equals方法进行判断进行排序,如果equals为true,则 此hashCode的地址上顺延,这种方式在 HashCode解决地址冲的方法中有提到,也就是 “链地址法”(最起码在这里用的是这中方式),还有 再哈希发,建立公共溢出区,线性探测,二次探测,伪随机数探测等等,,,