ホームページ  >  記事  >  Java  >  Javaで別のリストの順序に基づいて1つのリストを並べ替えるにはどうすればよいですか?

Javaで別のリストの順序に基づいて1つのリストを並べ替えるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 15:46:29945ブラウズ

How to Sort One List Based on the Order of Another List in Java?

Java でリストを別のリストに基づいて並べ替える

Java では、別のリストの順序に基づいてリストを並べ替えることができます。これは、1 つのリスト (listB) に項目の特定の順序があり、その順序に一致するように 2 番目のリスト (listA) を並べ替えたい場合に便利です。

これを実現する 1 つの方法は、次のとおりです。以下のようにカスタマイズされた Comparator を使用した Collections.sort() メソッド:

<code class="java">Collections.sort(listToSort, new Comparator<T>() {
    @Override
    public int compare(T o1, T o2) {
        return listWithOrder.indexOf(o1) - listWithOrder.indexOf(o2);
    }
});</code>

ここで、listToSort は並べ替えられていないリストを表し、listWithOrder には目的の順序が含まれます。この Comparator は、listWithOrder 内の要素の順序に基づいて listToSort を並べ替えます。

Java 8 以降の場合、ラムダと CompareInt() メソッドを使用してコードを簡素化できます。

<code class="java">listToSort.sort(Comparator.comparingInt(listWithOrder::indexOf));</code>

以上がJavaで別のリストの順序に基づいて1つのリストを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。