Konvertieren zwischen einer Liste und einem Set in Java

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

Read more

Mischen von Sammlungen in Java

Erfahren Sie, wie Sie verschiedene Sammlungen in Java mischen.

Read more

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

Read more

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.