【发布时间】:2014-03-11 23:37:57
【问题描述】:
我在使用 collections.sort 时遇到了问题,因为它没有对任何东西进行排序。我有两个类,一个类有一个比较日期的 compareTo 方法,另一个类有一个 Collections.sort 对日期进行排序。我的代码编译并运行没有错误,但 ArrayList 未排序,有人可以告诉我我做错了什么以及为什么 Collections.sort 不起作用。
代码如下:
public class CalendarDate implements Comparable<CalendarDate>{
private int month;
private int day;
//Constructor
public CalendarDate(int month, int day){
this.month = month;
this.day = day;
}
//CompareTo method
public int CompareTo(CalendarDate other){
if(month != other.month){
return month - other.month;
}
else {
return day - other.day;
}
}
//Getters
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
//toString method
public String toString(){
return month + "/" + day;
}
public int compareTo(CalendarDate other) {
return 0;
}
}
import java.util.*;
public class CalendarDateSort {
public static void main(String[] args){
ArrayList<CalendarDate> list = new ArrayList<CalendarDate>();
list.add(new CalendarDate(1, 11));
list.add(new CalendarDate(5, 15 ));
list.add(new CalendarDate(3, 8));
list.add(new CalendarDate(7, 10));
list.add(new CalendarDate(3, 16));
System.out.println("dates before sorting = " + list);
Collections.sort(list);
System.out.println("dates after sorting = " + list);
}
}
【问题讨论】: