ホームページ > Java > &#&チュートリアル > Java でオブジェクトの ArrayList を日付で並べ替えるにはどうすればよいですか?

Java でオブジェクトの ArrayList を日付で並べ替えるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-06 18:19:16
オリジナル
153 人が閲覧しました

How Do I Sort an ArrayList of Objects by Date in Java?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート