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