初学者可以借助这个例子,理解一下接口的作用。接口Comparable定义了所 有需要使用sort方法排序的对象的共同行为,否则sort方法根本无法实现。
如果Course数组可能根据价格排序,也可能需要根据名称排序,显然使用这 个方法就有局限性,因为compareTo方法只可能实现一种比较逻辑。Arrays类中 还有另外一种排序方法:
public static void sort(Object[] a, Comparator c)
Comparator是另一个接口,其中有一个方法:
public int compare(Object o1, Object o2)
只要创建一个类,实现Comparator接口,实现compare方法,就可以进行排序 ,如下:
package com.csst.relation;
import java.util.Comparator;
public class PriceComp implements Comparator {
public int compare(Object arg0, Object arg1) {
// TODO Auto-generated method stub
Course c1=(Course)arg0;
Course c2=(Course)arg1;
if(c1.getPrice()>c2.getPrice()){
return 1;
}else if(c1.getPrice()
return -1;
}else{
return 0;
}
}
}
有了这个实现类,使用Arrays.sort(Object[] o,Comparator c)方法,即可 以根据Comparator对象中的compare方法的比较算法进行排序。如果需要按照其 他标准排序,只要重新写类,实现Comparator接口即可。
通过本篇的学习,初学者不仅能掌握数组排序的方法,更能对Comparable和 Comparator接口比较熟悉。更进一步,还是建议能借此例子,理解接口的作用。
上一篇:Java语言中重载与覆盖的方法
下一篇:初见python你对它了解多少?
¥399.00
¥498.00
¥29.00
¥299.00