重载Comparator

来源:互联网 发布:拳皇14出招优化补丁 编辑:程序博客网 时间:2024/06/05 11:54
  • ArrayList提供sort方法,可以方便的进行排序,要求输入一个Comparator类作为参数。
    这个Comparator就是进行排序比较的标准。它实现接口Comparator,重载compare方法,举例如下:
        class Work{            int start;            int end;            public Work(int start,int end){                this.start=start;                this.end=end;            }        }        class MyComparator implements Comparator {              public int compare(Object o1, Object o2) {                  Work w1 = (Work) o1;                  Work w2 = (Work) o2;                  if (w1.end<w2.end)                      return -1;                  else if (w1.end > w2.end)                      return 1;                  else                      return 0;              }          } 
  • 这里,work类是我们需要用到的进行比较的类。它有两个参数,我们这里需要比较两个work对象的end值的大小,并按照从小到大升序排列。
  • 我们自己写一个MyComparator类,实现Comparator接口,由于我们要重载compare方法,此方法传递的参数是Object类,故需要在方法体内进行类型转换。后面是固定的格式,根据升序或降序的要求对return的顺序进行调换即可。
原创粉丝点击