题目描述
有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。
样例输入
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005
样例输出
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005
思路分析:把日期看做对象,在日期类中重写compareTo方法,使得对象可以比较大小,然后读入数据创建对象加到ArrayList中进行排序输出即可。(遇到一个问题,在我的电脑上scan.hasNextLine()输入完了也不会退出循环,在我电脑上运行失败,但是提交OJ是通过的,我没有想通。)
附上代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<DDate> al = new ArrayList<DDate>();
Scanner scan = new Scanner(System.in);
while (scan.hasNextLine()) {
String ss = scan.nextLine();
String str[] = ss.split("/");
String month = str[0];
String day = str[1];
String year = str[2];
al.add(new DDate(year, month, day));
}
Collections.sort(al);// 排序
for (DDate date : al) {
System.out.<