Javaで日時を基準にソートする方法です。
ソートする為に
関数を使用します。
日付をメンバーに持つ自前のクラスを作成し、
それをArrayListに代入して日付を基準にしてソートします。
1 2 3 4 5 6 7 |
public class EventDate { private int year; private int month; private int day; private int hour; private int minutes; } |
yearなどの日付をメンバーに持つEventDataクラスを定義しました。
このクラスオブジェクトをソートしたいと思います。
適当にEventDateクラスを作成し、
ArrayListに代入し、ソート関数を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 日にちをメンバーに持つeventDateListを作成する ArrayList<EventDate> eventDateList = createEventDataList(); Collections.sort(eventDateList, new Comparator<EventDate>() { @Override public int compare(EventDate o1, EventDate o2) { if(o1.getYear() == o2.getYear()){ if(o1.getDay() == o2.getDay()){ if(o1.getHour() == o2.getHour()){ return o1.getMinutes() - o2.getMinutes(); } else{ return o1.getHour() - o2.getHour(); } } else{ return o1.getDay() - o2.getDay(); } } else{ return o1.getYear() - o2.getYear(); } } }); |
まずは、年を基準にソートし、日付…という順にソートするので、
結果として日付ベースでソートされることになります。
また、
o1.~ – o2.~で昇順にソートされ
o2.~ – o1.~で降順にソートされます。