Heim  >  Artikel  >  Java  >  Wie sortiere ich eine Liste basierend auf der Reihenfolge einer anderen Liste in Java?

Wie sortiere ich eine Liste basierend auf der Reihenfolge einer anderen Liste in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 15:46:29944Durchsuche

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

Sortieren einer Liste basierend auf einer anderen in Java

In Java ist es möglich, eine Liste basierend auf der Reihenfolge einer anderen Liste zu sortieren. Dies kann in Situationen nützlich sein, in denen Sie eine bestimmte Reihenfolge von Elementen in einer Liste (listB) haben und eine zweite Liste (listA) neu anordnen möchten, um dieser Reihenfolge zu entsprechen.

Eine Möglichkeit, dies zu erreichen, ist die Verwendung von die Collections.sort()-Methode mit einem angepassten Comparator wie folgt:

<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>

Hier stellt listToSort Ihre unsortierte Liste dar und listWithOrder enthält die gewünschte Reihenfolge. Dieser Comparator sortiert listToSort basierend auf der Reihenfolge der Elemente in listWithOrder.

Für Java 8 und höher können Sie den Code mithilfe von Lambdas und der CompareInt()-Methode vereinfachen:

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

Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste basierend auf der Reihenfolge einer anderen Liste in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn