【Java】数组--利用冒泡算法给日期排序

12 篇文章 0 订阅

代码

public class TestDateSort {
    public static void main(String[] args) {
        Date[] days = new Date[5];  //元素为引用类型的数组中的每一个元素都需要实例化
        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(2004, 5, 9);
        days[4] = new Date(2004, 5, 4);

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

    //冒泡算法
     public static Date[] bubbleSort(Date[] a){
        int len = a.length;
        for(int i = len-1;i>=1;i--){
            for(int j = 0;j<=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;
    }
}

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;     //如果相等返回0
  }
  //对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

  //重写toString()方法,使结果显示更加清晰
  public String toString() { 
    return "Year:Month:Day -- " + year + "-" + month + "-" + day;
  }  
}

效果图

这里写图片描述

排序前内存分配

这里写图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值