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.