关于新手的“冒泡排序”一个不解
求大侠拯救
我得出的最后结果都是:
yrar:month:day==2007 5 6
yrar:month:day==2008 2 6
yrar:month:day==2003 5 6
yrar:month:day==2012 9 6
yrar:month:day==2008 5 6
没有排序的结果!
代码如下:
class Date{
	int year,month,day;
	Date(int y,int m,int d)
	{
		year=y;month=m;day=d;
	}
	public int compare(Date date){
		return year>date.year ? 1
			 : year<date.year ? -1
		     : month>date.month ? 1
		     : month<date.month ? -1
		     : day>date.day ? 1
		     : day<date.day ? -1 : 0 ;
	}
	public String toString(){
		return "yrar:month:day=="+year+" "+month+" "+day;		
	}
}
public class TestDateSort {
    public static void main(String args[]){
	   Date d[]=new Date[5];
	    d[0]=new Date(2007,5,6);
	    d[1]=new Date(2008,2,6);
	    d[2]=new Date(2003,5,6);
	    d[3]=new Date(2012,9,6);
	    d[4]=new Date(2008,5,6);	   
	    bubble(d);
	   for(int i=0;i<d.length;i++){
		   System.out.println(d[i]);
	   }
    }
    public static Date[] bubble(Date[] a){
	   int len=a.length;
	   for(int i=len-1;i>=1;i--){
		   for(int j=0;i<=i-1;j++){
			   if(a[j].compare(a[j+1])>0)
			   {
				   Date temp=a[j];
				   a[j]=a[j+1];
				   a[j+1]=temp;				    
			   }
		   }
	   }
	   return a;
    }
}
------解决方案--------------------
public int compare(Date date){
return year>date.year ? 1
: year<date.year ? -1
: month>date.month ? 1
: month<date.month ? -1
: day>date.day ? 1
: day<date.day ? -1 : 0 ;
}
代码改改吧...别采用条件判断式,改用if else