Java语言入门教程Comparable与Comparator接口(2)

    作者:课课家教育更新于: 2016-01-20 17:08:56

    大神带你学编程,欢迎选课

      初学者可以借助这个例子,理解一下接口的作用。接口Comparable定义了所 有需要使用sort方法排序的对象的共同行为,否则sort方法根本无法实现。

    Java语言入门教程Comparable与Comparator接口(2)_java手游开发_java网站空间_课课家

      如果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接口比较熟悉。更进一步,还是建议能借此例子,理解接口的作用。

课课家教育

未登录