JAVA练习 日期时间的排序查找



class YYYYY {
public static void main(String[] args) {
date date[] = new date[5];
date[0] = new date(2006, 8, 6);
date[1] = new date(2007, 4, 6);
date[2] = new date(2008, 4, 9);
date[3] = new date(2004, 4, 6);
date[4] = new date(2009, 4, 5);


date d = new date(2006, 8, 6);
date = YYYYY.maopao(date);
for (int i = 0; i < date.length; i++) {
System.out.println(date[i]);
}
int binarySearch = YYYYY.binarySearch(date, d);
System.out.println(binarySearch);
}


public static date[] maopao(date[] date) {
for (int i = 0; i < date.length - 1; i++) {
for (int j = 0; j < date.length - i - 1; j++) {
if (date[j].compareTo(date[j + 1]) > 0) {
date temp = date[j];
date[j] = date[j + 1];
date[j + 1] = temp;
}
}
}
return date;


}


public static int binarySearch(date[] date, date d) {
if (date.length == 0) {
return -1;
}
int befor = 0;
int end = date.length - 1;
int mid = (befor + end) / 2;


while (befor <= end) {
if (d.compareTo(date[mid]) == 0) {
return mid;
}
if (d.compareTo(date[mid]) > 0) {
befor = mid + 1;
}
if (d.compareTo(date[mid]) < 0) {
end = mid - 1;
}


mid = (befor + end) / 2;
}


return -1;


}


}


class date implements Comparable<date> {
private int year;
private int month;
private int day;


public date() {
}


public date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}


@Override
public int compareTo(date o) {
return year > o.year ? 1
: year < o.year ? -1
: month > o.month ? 1 
: month < o.month ? -1 
: day > o.day ? 1 
: day < o.day ? -1 
: 0;
}


@Override
public String toString() {
return "date [year=" + year + ", month=" + month + ", day=" + day + "]";
}


}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值