Java でオブジェクトの配列を名前で並べ替えるにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-16 04:31:03
オリジナル
536 人が閲覧しました

How do I sort an array of objects by name in Java?

Java でオブジェクトの配列を名前で並べ替える

Java でオブジェクトの配列を操作する場合、整理のために配列を並べ替える必要があります。そして簡単な検索。値を抽出して比較する方法がわからない場合、特定のフィールドでオブジェクトの配列を並べ替えるのは難しい作業になる可能性があります。

「名前」などの特定のフィールドでオブジェクトの配列を並べ替えるには、 Comparable インターフェイスを実装するか、カスタム Comparator を提供する必要があります。オブジェクトには「name」という名前の文字列フィールドがないため、並べ替えを実行するコンパレーターを作成します。

名前フィールドの抽出

抽出するにはオブジェクトから名前を取得するには、すでに実装されている toString() メソッドを使用できます。各オブジェクトには、名前を含むオブジェクトのフィールドの文字列表現を返す toString() メソッドがあると仮定します。

public String toString() {
  return (name + "\n" + id + "\n" + author + "\n" + publisher + "\n");
}
ログイン後にコピー

コンパレータの作成

To配列を名前でソートするには、名前に基づいてオブジェクトを比較するコンパレータを作成する必要があります:

Comparator<Book> comparator = new Comparator<Book>() {

  public int compare(Book o1, Book o2) {
    return o1.name.compareTo(o2.name);
  }
};
ログイン後にコピー

上記のコンパレータでは、compare() メソッドは 2 つの Book オブジェクトを比較し、次の値に基づいて整数を返します。比較結果。 o1 の名前が辞書編集的に o2 の名前より小さい場合、負の整数を返します。名前が等しい場合は 0 を返します。そうでない場合は、正の整数を返します。

配列の並べ替え

最後に、Collections.sort() を使用できます。コンパレータを使用して配列を並べ替えるメソッド:

List<Book> books = new ArrayList<Book>();

Collections.sort(books, comparator);
ログイン後にコピー

これは、オブジェクトの配列を「名前」フィールドで昇順に並べ替えます。比較ロジックを逆にすることで、降順でソートするようにコンパレータを変更できます。

以上がJava でオブジェクトの配列を名前で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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