Konvertere mellom en matrise og et sett i Java

1. Oversikt

I denne korte artikkelen skal vi se på konvertere mellom en array og en Sett - bruk først java, deretter Guava og Commons Collections-biblioteket fra Apache.

Denne artikkelen er en del av "Java - Back to Basic" -serien her på Baeldung.

2. Konverter Array til en Sett

2.1. Bruke vanlig Java

La oss først se på hvordan snu matrisen til en Sett bruker vanlig Java:

@Test offentlig ugyldighet givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Sett targetSet = ny HashSet (Arrays.asList (sourceArray)); }

Alternativt kan Sett kan opprettes først og deretter fylles med matriseelementene:

@Test offentlig ugyldighet givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Heltall [] sourceArray = {0, 1, 2, 3, 4, 5}; Sett targetSet = nytt HashSet (); Collections.addAll (targetSet, sourceArray); }

2.2. Bruke Google Guava

La oss se på Guava-konverteringen fra matrise til sett:

@Test offentlig ugyldig givenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Sett targetSet = Sets.newHashSet (sourceArray); }

2.3. Bruke Apache Commons-samlinger

Til slutt, la oss gjøre konverteringen ved hjelp av Commons Collection-biblioteket fra Apache:

@Test offentlig ugyldighet givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Sett targetSet = nytt HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }

3. Konverter Set til Array

3.1. Bruke vanlig Java

La oss nå se på det motsatte - konvertere et eksisterende sett til en matrise:

@Test offentlig ugyldighet givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Heltall [] targetArray = sourceSet.toArray (nytt Heltall [0]); }

Noter det toArray (ny T [0]) er den foretrukne måten å bruke metoden på toArray (ny T [størrelse]). Som Aleksey Shipilëv viser i blogginnlegget, virker det raskere, tryggere og renere.

3.2. Bruke Guava

Neste - Guava-løsningen:

@Test public void givenUsingGuava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); int [] targetArray = Ints.toArray (sourceSet); }

Legg merke til at vi bruker Ints API fra Guava, så denne løsningen er spesifikk for datatypen vi jobber med.

4. Konklusjon

Implementeringen av alle disse eksemplene og kodebiter finner du på Github - dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.


$config[zx-auto] not found$config[zx-overlay] not found