並べ替えに Java で Comparator を使用する
Java の Comparator インターフェイスは、コレクション オブジェクトの並べ替え動作をカスタマイズするための強力なツールです。これにより、デフォルトの Comparable インターフェイスを超えて、特定の基準に従ってデータを簡単に並べ替えることができます。
Comparator インターフェイスについて
Comparator インターフェイスは、単一のメソッド Compare( )、これは 2 つのオブジェクトを受け取り、整数を返します:
コンパレータの使用法
コレクションを使用するコンパレーターの場合は、コンパレーターのインスタンスを 2 番目の引数として Collections.sort() などのコレクションの並べ替えメソッドに渡すだけです。例:
List<MyObject> myObjects = new ArrayList<>(); Collections.sort(myObjects, new MyComparator());
Where MyComparator は Comparator
ClassCastException の解決
提供したコードでは、スレッド "main" java.lang で例外が発生しました。 People クラスが Comparable ではなく Comparator インターフェイスを実装しているため、.ClassCastException エラーが発生します。この問題を解決するには、People クラスから Comparator 行を実装します。
並べ替えロジックを処理するには、別の Comparator クラスを作成する必要があります。例:
public class PeopleComparator implements Comparator<People> { @Override public int compare(People p1, People p2) { return p1.getId() - p2.getId(); } }
次のように使用します。
Collections.sort(peps, new PeopleComparator());
追加メモ
以上がJava のコンパレータ インターフェイスをカスタム ソートに使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。