Konvertieren zwischen einem Array und einem Set in Java
1. Überblick
In diesem kurzen Artikel werden wir uns mitconverting between an array and a Set befassen - zuerst mit einfachem Java, dann mit Guava und der Commons Collections-Bibliothek von Apache.
Dieser Artikel ist Teil vonthe “Java – Back to Basic” series hier am Beispiel.
2. Konvertieren SieArray inSet
2.1. Verwenden von Plain Java
Schauen wir uns zunächst an, wieturn the array to a Set using plain Java:
@Test
public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
Set targetSet = new HashSet(Arrays.asList(sourceArray));
}
Alternativ können dieSet zuerst erstellt und dann mit den Array-Elementen gefüllt werden:
@Test
public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
Set targetSet = new HashSet();
Collections.addAll(targetSet, sourceArray);
}
2.2. Verwendung von Google Guava
Schauen wir uns als nächstesthe Guava conversion from array to Set an:
@Test
public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
Set targetSet = Sets.newHashSet(sourceArray);
}
2.3. Verwenden von Apache Commons-Sammlungen
Lassen Sie uns abschließend die Konvertierung mithilfe der Commons Collection-Bibliothek von Apache durchführen:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
Set targetSet = new HashSet<>(6);
CollectionUtils.addAll(targetSet, sourceArray);
}
3. Set in Array konvertieren
3.1. Verwenden von Plain Java
Schauen wir uns nun das Gegenteil an -converting an existing Set to an array:
@Test
public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceSet.toArray(new Integer[sourceSet.size()]);
}
3.2. Mit Guave
Weiter - die Guava-Lösung:
@Test
public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
int[] targetArray = Ints.toArray(sourceSet);
}
Beachten Sie, dass wir dieInts-API von Guava verwenden. Diese Lösung ist also spezifisch für den Datentyp, mit dem wir arbeiten.
3.3 Using Commons Collections
Und zum Schluss - verwandeln wir dieSet mithilfe der Apache Commons Collections-Bibliothek in ein Array:
@Test
public void givenUsingCommonsCollections_whenSetConvertedToArray_thenCorrect() {
Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceSet.toArray(new Integer[sourceSet.size()]);
}
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.