0
我正在玩數組和枚舉,我想知道創建一個Comparator類以降序排列這些日期的最有效方法是什麼。繼承人我的代碼。在Java中按降序對數組進行排序
public enum Month {JAN(1), FEB(2), MAR(3), APR(4), MAY(5), JUN(6), JUL(7),
AUG(8), SEPT(9), OCT(10), NOV(11), DEC(12);
final int monthBoundary;
Month(int y){
monthBoundary=y;}
}
public enum Date {FIRST(1), SECOND(2), THIRD(3), FORTH(4),
FIFTH(5)... THIRTYFIRST(31);
final int dateBoundary;
Date(int z){
dateBoundary=z;}
}
//constructor etc here
private static final List<Cal> calendar = new ArrayList<Cal>();
static {
for (Month month : Month.values()) {
for (Date date : Date.values()) {
calendar.add(new Cal(date, month));
}
}
}
//creates new calendar dates
public static ArrayList<Cal> newCal() {
return new ArrayList<Cal>(calendar);
}
使用以下語句我可以按照創建的順序打印數組。
System.out.print(Card.calendar());
如何創建一個Comparator類來按降序對這些日期進行排序? 理想情況下,我希望它對數組進行排序,無論它是按順序還是隨機排列。 在這個階段,我不關心不存在的日期(例如2月31日),因爲我只是練習和自學......只是試圖理解:) 謝謝。
增加:
public ArrayList<Cal> sortDescending(ArrayList<Cal> calList){
Comparator<Cal> c = Collections.reverseOrder();
Collections.sort(calList, c);
return calList;
}
好了,你怎麼想,那應該怎麼辦呢?你有沒有想出一些代碼?如果是,請在此發佈。 –
用你自己的比較器試試Collections.sort() – user902383
@RohitJain我添加了我試過的方法。我不確定它是否是實施它的最佳方式 – binary101