Konvertálás tömb és halmaz között Java-ban

1. Áttekintés

Ebben a rövid cikkben megnézzük konvertálás an között sor és a Készlet - először a sima java, majd a Guava és az Apache Commons Collections könyvtárának használatával.

Ez a cikk a „Java - Vissza az alapokhoz” sorozat része, itt, Baeldungon.

2. Konvertálás Sor a Készlet

2.1. Sima Java használatával

Először nézzük meg, hogyan kell fordítsa a tömböt a-ra Készlet sima Java használatával:

@Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Egész szám [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = új HashSet (Arrays.asList (sourceArray)); }

Alternatív megoldásként a Készlet előbb létrehozható, majd kitölthető a tömb elemekkel:

@Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Egész szám [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = új HashSet (); Collections.addAll (targetSet, sourceArray); }

2.2. A Google Guava használata

Ezután nézzük meg a guava-átalakítás tömbből Set-be:

@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Egész szám [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = Sets.newHashSet (sourceArray); }

2.3. Az Apache Commons gyűjtemények használata

Végül végezzük el az átalakítást az Apache Commons Collection könyvtárával:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Egész szám [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = új HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }

3. Konvertálja a Set-t tömbre

3.1. Sima Java használatával

Most nézzük meg a fordítottját - meglévő készlet átalakítása tömbre:

@Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Egész [] targetArray = sourceSet.toArray (új egész szám [0]); }

Vegye figyelembe, hogy toArray (új T [0]) a módszer előnyös módja a toArray (új T [méret]). Amint Aleksey Shipilëv blogbejegyzésében bizonyítja, gyorsabbnak, biztonságosabbnak és tisztábbnak tűnik.

3.2. Guava használatával

Következő - a guavai megoldás:

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

Figyelje meg, hogy a Ints API Guavától, tehát ez a megoldás specifikus arra az adattípusra, amellyel dolgozunk.

4. Következtetés

Mindezen példák és kódrészletek megvalósítása megtalálható a Githubon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.