Konvertering mellem en matrix og et sæt i Java

1. Oversigt

I denne korte artikel skal vi se på konvertering mellem en array og en Sæt - først ved hjælp af almindelig java, derefter Guava og Commons Collections-biblioteket fra Apache.

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

2. Konverter Array til en Sæt

2.1. Brug af almindelig Java

Lad os først se på, hvordan man gør det drej matrixen til en Sæt ved hjælp af almindelig Java:

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

Alternativt kan Sæt kan oprettes først og derefter udfyldes med matrixelementerne:

@Test offentlig ugyldighed givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Heltal [] sourceArray = {0, 1, 2, 3, 4, 5}; Indstil targetSet = nyt HashSet (); Collections.addAll (targetSet, sourceArray); }

2.2. Brug af Google Guava

Lad os derefter se på Guava-konvertering fra matrix til sæt:

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

2.3. Brug af Apache Commons-samlinger

Lad os endelig udføre konverteringen ved hjælp af Commons Collection-biblioteket fra Apache:

@Test offentlig ugyldighed givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Heltal [] sourceArray = {0, 1, 2, 3, 4, 5}; Indstil targetSet = nyt HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }

3. Konverter Set til Array

3.1. Brug af almindelig Java

Lad os nu se på det modsatte - konvertering af et eksisterende sæt til en matrix:

@Test offentlig ugyldighed givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Heltal [] targetArray = sourceSet.toArray (nyt heltal [0]); }

Noter det toArray (ny T [0]) er den foretrukne måde at bruge metoden frem for toArray (ny T [størrelse]). Som Aleksey Shipilëv beviser i sit blogindlæg, virker det hurtigere, mere sikkert og renere.

3.2. Brug af Guava

Næste - Guava-løsningen:

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

Bemærk, at vi bruger Ints API fra Guava, så denne løsning er specifik for den datatype, vi arbejder med.

4. Konklusion

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på Github - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.