关于compareTo Comparator两个接口的个问题?急,,,just 结分 1,CompareTo里的compareTo(Object o)抽象方法和Comparator里的compare(Object o1,Object o2)抽象方法有什么不同?补充说明一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1===>这两个方法分属两个不同的接口,Comparator.compare(Object o1, Object o2) andComparable.compareTo(Object o),这两个接口是不同的,在实现这两个方法时,应该是差不多的,只是一个用自身做为另一个对象而已.2===>用List或Collection也可.3===>它的sort方法中会调用compareTo方法来决定存放的次序. 1,CompareTo里的compareTo(Object o)抽象方法和compare(Object o1,Object o2)的抽象方法有什么不同?r:这两个方法都是为比较两个对象而提供的接口方法,在比较两个对象方面本质上没有区别,只是调用方式不同。但Comparable接口和Comparator接口是有区别的:一个是被比较的对象,一个是执行比较的对象。2,我在看java核心1里CompareTo里的例子,他是一个员工类实现了compareto接口,然后调用了Arrays.sort()来排序员工的薪水,是每个实现compareto接口的类都要用arrays里的sort方法来排序么?r:当然不是,你可以写自己的排序算法。Arrays只是JDK2.0以后提供的一个工具类,用来方便你的排序。在比较先后顺序是它必须要用到被比较对象的compareTo方法。所以如果你想利用Arrays类提供的方便性,就必须让你的对象实现Comparable接口。当然,如果你不想用Arrays类而自己写排序代码,就可以不实现Comparable接口。3,在覆盖compareto借口里方法时用用比较大小来返回1,-1,0 不知道为什么这样子他就能实现排序了,,,r: 检查Arrays类代码你就会发现,它是根据compareTo方法的返回值来决定对象在排序时的先后位置的。 应该是Comparable ,Comparator 吧,实现Comparable接口的类(必须实现compareTo(Object o) 抽象类不再讨论之列)具有了排序的能力,在实现的compareTo(Object o) 中通过返回1,-1,0 来让Arrays.sortsort(Object[] a) 来判断数组中的对象的顺序(循环比对),所以可以实现排序。在Arrays的sort(Object[] a, Comparator c)方法中Comparator是另外的一个实现了Comparator接口的类,Arrays用Comparator中提供的compare(Object o1, Object o2) 方法来循环比对数组中对象的顺序。 一个是java.lang 一个是java.util包的,,看看api 吧,,给分 我给你一个例子看吧。 ██████████┏━━━━━┓██★ ★██ ☆ up ☆ ██ ██ 〖初窥Java〗 ██ 【虚心学习】 ██★ ★██┗━━━━━┛██████████ 按关闭按钮是弹出对话框,再按取消按钮 acm 题求解 一个回溯算法问题求解 apache httpClient 散分了 关于如何学习thinking in Java的问题 关于 VECTOR 多线程访问 请问JFrame 中如何使用多个Container 奇怪的问题,整不明白 谁有jbuilder2006的教程?我在jbuilder2006里建一个web module,然后在web module里建了一个jsp和servlet还有配置了一个mapping.可是我的js 排序 一个新新手的求助!!!快帮帮我,我好急的呀!谢谢! 这100分是拿来送的...同是java的爱好者进来聊聊吧
Comparator.compare(Object o1, Object o2) and
Comparable.compareTo(Object o),这两个接口是不同的,在实现这两个方法时,应该是差不多的,只是一个用自身做为另一个对象而已.
2===>用List或Collection也可.
3===>它的sort方法中会调用compareTo方法来决定存放的次序.
的抽象方法有什么不同?r:这两个方法都是为比较两个对象而提供的接口方法,在比较两个对象方面本质上没有区别,只是调用方式不同。但Comparable接口和Comparator接口是有区别的:一个是被比较的对象,一个是执行比较的对象。
2,我在看java核心1里CompareTo里的例子,他是一个员工类实现了compareto接口,
然后调用了Arrays.sort()来排序员工的薪水,是每个实现compareto接口的类都要
用arrays里的sort方法来排序么?r:当然不是,你可以写自己的排序算法。Arrays只是JDK2.0以后提供的一个工具类,用来方便你的排序。在比较先后顺序是它必须要用到被比较对象的compareTo方法。所以如果你想利用Arrays类提供的方便性,就必须让你的对象实现Comparable接口。当然,如果你不想用Arrays类而自己写排序代码,就可以不实现Comparable接口。3,在覆盖compareto借口里方法时用用比较大小来返回1,-1,0 不知道为什么这样子他就能
实现排序了,,,r: 检查Arrays类代码你就会发现,它是根据compareTo方法的返回值来决定对象在排序时的先后位置的。
实现Comparable接口的类(必须实现compareTo(Object o) 抽象类不再讨论之列)具有了排序的能力,在实现的compareTo(Object o) 中通过返回1,-1,0 来让Arrays.sortsort(Object[] a) 来判断数组中的对象的顺序(循环比对),所以可以实现排序。在Arrays的sort(Object[] a, Comparator c)方法中Comparator是另外的一个实现了Comparator接口的类,Arrays用Comparator中提供的compare(Object o1, Object o2) 方法来循环比对数组中对象的顺序。
给分 我给你一个例子看吧。
█┏━━━━━┓█
█★ ★█
█ ☆ up ☆ █
█ █
█ 〖初窥Java〗 █
█ 【虚心学习】 █
█★ ★█
█┗━━━━━┛█
█████████