Konverzia medzi poľom a množinou v Jave

1. Prehľad

V tomto krátkom článku sa pozrieme na prevod medzi pole a a Nastaviť - najskôr pomocou obyčajnej Java, potom Guava a knižnica Commons Collections z Apache.

Tento článok je súčasťou série „Java - Späť na základné“ tu na Baeldungu.

2. Konvertovať Pole do a Nastaviť

2.1. Používanie obyčajnej Javy

Najprv sa pozrime, ako na to otočiť pole na a Nastaviť pomocou obyčajnej Javy:

@Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = new HashSet (Arrays.asList (sourceArray)); }

Prípadne Nastaviť môžu byť vytvorené najskôr a potom naplnené prvkami poľa:

@Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = new HashSet (); Collections.addAll (targetSet, sourceArray); }

2.2. Pomocou služby Google Guava

Ďalej sa pozrime na prevod Guavy z poľa na Set:

@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Nastaviť targetSet = Sets.newHashSet (sourceArray); }

2.3. Používanie zbierok Apache Commons

Nakoniec urobíme prevod pomocou knižnice Commons Collection z Apache:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Nastaviť targetSet = nový HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }

3. Preveďte nastavenie na pole

3.1. Používanie obyčajnej Javy

Teraz sa pozrime na opačnú stranu - prevod existujúcej množiny na pole:

@Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Celé číslo [] targetArray = sourceSet.toArray (nové celé číslo [0]); }

Poznač si to toArray (nové T [0]) je uprednostňovaným spôsobom použitia metódy pred toArray (nové T [veľkosť]). Ako dokazuje Aleksey Shipilëv vo svojom blogovom príspevku, zdá sa byť rýchlejší, bezpečnejší a čistejší.

3.2. Pomocou Guava

Ďalej - riešenie Guava:

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

Všimnite si, že používame Ints API od spoločnosti Guava, takže toto riešenie je špecifické pre dátový typ, s ktorým pracujeme.

4. Záver

Implementácia všetkých týchto príkladov a útržkov kódu nájdete na Githube - toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.


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