Konvertieren zwischen einer Liste und einem Set in Java
1. Überblick
In diesem kurzen Artikel werfen wir einen Blick aufthe conversion between a List and a Set - beginnend mit Plain Java, mit Guava und schließlich mit der BibliothekApache Commons Collections.
Dieser Artikel ist Teil vonthe “Java – Back to Basic” series hier am Beispiel.
Weitere Lektüre:
So finden Sie ein Element in einer Liste mit Java
Sehen Sie sich einige schnelle Möglichkeiten an, um ein Element in einer Liste in Java zu finden
Mischen von Sammlungen in Java
Erfahren Sie, wie Sie verschiedene Sammlungen in Java mischen.
Überprüfen Sie, ob zwei Listen in Java gleich sind
Ein kurzer Artikel befasste sich mit dem allgemeinen Problem des Testens, ob zwei List-Instanzen dieselben Elemente in genau derselben Reihenfolge enthalten.
2. Konvertieren SieList inSet
2.1. Mit einfachem Java
Beginnen wir mit der Konvertierung vonfrom a List to a Set using Java:
public void givenUsingCoreJava_whenListConvertedToSet_thenCorrect() {
List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Set targetSet = new HashSet<>(sourceList);
}
Wie Sie sehen, ist der Konvertierungsprozess typsicher und sehr einfach - da die Konstruktoren jeder Sammlung eine andere Sammlung als Quelle akzeptieren.
2.2. With Guave
Führen Sie dieselbe Konvertierung mit Guava durch:
public void givenUsingGuava_whenListConvertedToSet_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
Set targetSet = Sets.newHashSet(sourceList);
}
2.3. Mit Apache Commons-Sammlungen
Verwenden Sie als Nächstes die Commons Collections-API, um zwischenList undSet zu konvertieren:
public void givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
Set targetSet = new HashSet<>(6);
CollectionUtils.addAll(targetSet, sourceList);
}
3. Konvertieren SieSet inList
3.1. Mit einfachem Java
Führen wir nun die umgekehrte Konvertierung durch -from a Set to a List – using Java:
public void givenUsingCoreJava_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = new ArrayList<>(sourceSet);
}
3.2. Mit Guave
Und die Guava-Lösung:
public void givenUsingGuava_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = Lists.newArrayList(sourceSet);
}
Sehr ähnlich dem Java-Ansatz, nur mit etwas weniger dupliziertem Code.
3.3. Mit Apache Commons-Sammlungen
Schließlich die Commons Collections-Lösung zum Konvertieren zwischen aSet und aList:
public void givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceSet);
}
4. Fazit
Die Implementierung all dieser Beispiele und Codefragmentecan be found over on GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.