高手们,下面的代码是对日期进行排序的:
public class TestDateSort1 {
public static void main(String[] args) {
Date[] days = new Date[10];
days[0] = new Date(2006,5,4);
days[1] = new Date(2006,7,4);
days[2] = new Date(2008,5,4);
days[3] = new Date(2008,5,9);
days[4] = new Date(2004,5,4);
days[5] = new Date(2005,12,30);
days[6] = new Date(2003,8,1);
days[7] = new Date(2009,5,25);
days[8] = new Date(2007,7,1);
days[9] = new Date(2001,7,1); 

bubbleSort(days);

for(int i=0;i<days.length;i++) {
System.out.println(days[i]);
}

public static Date[] bubbleSort(Date[] a) {   //21行,这行有问题 int len = a.length;
for(int i=len-1;i<=1;i--) {
for(int j=0;j<i;j++) {
if(a[j].compare(a[j+1])>0) {
Date temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
}
}class Date {
int year;
int month;
int day;

Date(int y,int m,int d) {
year = y;
month = m;
day = d;
}

public int compare(Date d) {
return year > d.year ? 1
 :year < d.year ? -1
 :month > d.month ? 1
 :month < d.month ? -1
 :day > d.day ? 1
 :day < d.day ? -1 : 0;

}

public void toString() {
System.out.println(year+"-"+month+"-"+day);
}
}
但编译后,出现下面的错误提示,怎么解决呀?21行出现的问题:非法的表达式开始
                需要;
              需要.CLASS
              需要;

解决方案 »

  1.   

    你的返回值是Date[] ,这是什么类型
      

  2.   

    第一个方法的括号都写错位子了, 而且toString() 应该是public String toString(){...}吧!
      

  3.   

    for(int i=0;i <days.length;i++) { 
    System.out.println(days[i]); 
    }后面+个 }return a; 后面去掉一个 }
    public class TestDateSort1 {
    public static void main(String[] args) {
    Date[] days = new Date[10];
    days[0] = new Date(2006, 5, 4);
    days[1] = new Date(2006, 7, 4);
    days[2] = new Date(2008, 5, 4);
    days[3] = new Date(2008, 5, 9);
    days[4] = new Date(2004, 5, 4);
    days[5] = new Date(2005, 12, 30);
    days[6] = new Date(2003, 8, 1);
    days[7] = new Date(2009, 5, 25);
    days[8] = new Date(2007, 7, 1);
    days[9] = new Date(2001, 7, 1); bubbleSort(days); for (int i = 0; i < days.length; i++) {
    System.out.println(days[i]);
    }
    } static public Date[] bubbleSort(Date[] a) {
    int len = a.length;
    for (int i = len - 1; i <= 1; i--) {
    for (int j = 0; j < i; j++) {
    if (a[j].compare(a[j + 1]) > 0) {
    Date temp = a[j];
    a[j] = a[j + 1];
    a[j + 1] = temp;
    }
    }
    }
    return a;
    }
    }class Date {
    int year;
    int month;
    int day; Date(int y, int m, int d) {
    year = y;
    month = m;
    day = d;
    } public int compare(Date d) {
    return year > d.year ? 1 : year < d.year ? -1 : month > d.month ? 1
    : month < d.month ? -1 : day > d.day ? 1 : day < d.day ? -1 : 0; } public void showString() {
    System.out.println(year + "-" + month + "-" + day);
    }
    }
      

  4.   

    LZ思路很新颖呀,
    其实可以直接用java.util.Date,然后把实例化的对象放入ArrayList 中,编写一个一个实现了comparable接口的类,直接用Collections.sort(list,Comparator)这个方法就行。