首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

java中 Collections.sort方法应用有关问题

2012-09-03 
java中 Collections.sort方法应用问题小弟看到课本定义如下1》static class PriceComparator implements Co

java中 Collections.sort方法应用问题
小弟看到课本定义如下
1》static class PriceComparator implements Comparator {
public int compare(Object object1, Object object2) {// 实现接口中的方法
Book p1 = (Book) object1; // 强制转换
Book p2 = (Book) object2;
return new Double(p1.price).compareTo( new Double(p2.price));//compareto 方法都有过实现
}
}
2》Collections.sort(list, new PriceComparator()); // 根据价格排序

这样就能够实现排序么?不懂啊 怎么弄的?compareto返回值不就是(-1,1,0)3个值么 然后sort方法怎么个排序的啊

[解决办法]
Comparator是个接口,可以重写他的compare()和equals()这两个方法,也就是说比较的方法,如果是null的话,就是使用元素的自然顺序,如1,2,4,5,9,8,7,就是1,2,4,5,7,8,9这样,字母也可以.
compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数
equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true.
Collections.sort(list, new PriceComparator());的第二个参数返回一个int型的值,我的理解就相当于一个标志,告诉sort方法按什么顺序来对list进行排序。至于具体是如何实现的楼主可以看看sort方法的源代码。

热点排行