Guava Art der Sortierung Liste nach einer anderen Liste?

7

Ich habe List<Integer> bestehend aus den IDs meiner Benutzer. Und nach einer Datenbankabfrage erhalte ich List<User> . Ich möchte diese Liste gemäß der ersten ID-Liste bestellen. List<User> enthält möglicherweise einige der IDs nicht. Wie sieht die Guava-Methode zum Sortieren dieser Liste aus?

    
Cemo 07.06.2012, 10:58
quelle

5 Antworten

12

Der vollständig "funktionale" Weg, der Guava verwendet, würde Ordering#explicit() mit Ordering#onResultOf()

kombinieren %Vor%

Sie könnten eine anonyme Funktion inline deklarieren, aber ich möchte meine Funktionen als statische Factory-Methoden in einer separaten Klasse deklarieren, um einen saubereren Code zu erhalten (die Ausführlichkeit der Java-Funktionsdeklarationen ist in der Dienstprogrammklasse verborgen):

%Vor%     
Etienne Neveu 07.06.2012, 11:50
quelle
9

Ich denke nicht, dass Guava irgendetwas speziell dafür hat. Aber es ist nur eine Frage des Schreibens dieses Komparators:

%Vor%

Jetzt, wo ich darüber nachdenke, kann es auch so umgesetzt werden:

%Vor%

was wahrscheinlich effizienter ist.

    
JB Nizet 07.06.2012 11:12
quelle
2

Andere haben Ihre Frage bereits mit Guava beantwortet. Hier ist eine Funktionale Java Antwort.

Bitte beachten Sie, dass Sie unveränderliche Datenstrukturen aus der Bibliothek verwenden müssen, um alle Vorteile zu nutzen.

%Vor%     
missingfaktor 07.06.2012 11:57
quelle
0

Einfachere Antwort mit Google Guava

%Vor%     
Marcello de Sales 22.11.2013 20:29
quelle
0

Hier erfahren Sie, wie Sie dies mit Java-8-lambdas tun.

%Vor%     
Jeffrey Bosboom 23.09.2014 14:42
quelle

Tags und Links