ArrayList 内のオブジェクトを日付で並べ替える
広範な研究により、ArrayList 内の要素のアルファベット順の並べ替えに関する多数の例が明らかになりましたが、引き続き探索する必要があります。要素を日付で並べ替える方法。この記事では、このような並べ替えメカニズムの実装について詳しく説明します。
Comparable インターフェイスの実装
1 つのアプローチには、並べ替えられるオブジェクト内に Comparable インターフェイスを実装することが含まれます。そうすることで、そのオブジェクトを同じ種類の他のオブジェクトと比較できます。
public class MyObject implements Comparable<MyObject> { private Date dateTime; // getters and setters @Override public int compareTo(MyObject o) { return getDateTime().compareTo(o.getDateTime()); } }
Collections.sort() を使用した並べ替え
オブジェクトが比較可能になったら、Collections.sort() メソッドを使用して並べ替えることができます。
Collections.sort(myList);
カスタムComparator
場合によっては、モデルの変更が望ましくない場合があります。このような場合、カスタム コンパレーターをオンザフライで作成できます。
Collections.sort(myList, new Comparator<MyObject>() { public int compare(MyObject o1, MyObject o2) { return o1.getDateTime().compareTo(o2.getDateTime()); } });
Null 値の処理
DateTime に null 値が含まれる可能性を考慮することが重要です。分野。 NullPointerExceptions を回避するには、次のように null 値を処理することをお勧めします:
public class MyObject implements Comparable<MyObject> { private Date dateTime; // getters and setters @Override public int compareTo(MyObject o) { if (getDateTime() == null || o.getDateTime() == null) return 0; return getDateTime().compareTo(o.getDateTime()); } }
またはカスタム コンパレータ:
Collections.sort(myList, new Comparator<MyObject>() { public int compare(MyObject o1, MyObject o2) { if (o1.getDateTime() == null || o2.getDateTime() == null) return 0; return o1.getDateTime().compareTo(o2.getDateTime()); } });
以上がJava でオブジェクトの ArrayList を日付で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。