Heim > Java > javaLernprogramm > 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
Freigeben: 2024-11-02 15:46:29
Original
954 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage