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.