Pretvaranje između niza i skupa u Javi
1. Pregled
U ovom kratkom članku ćemo pogledati pretvarajući između an niz i a Postavi - prvo koristeći običnu javu, zatim Guavu i biblioteku Commons Collections iz Apachea.
Ovaj je članak dio serije "Java - Povratak na osnovno" ovdje na Baeldungu.
2. Pretvori Polje do a Postavi
2.1. Korištenje obične Jave
Pogledajmo prvo kako okreni niz u a Postavi koristeći običnu Javu:
@Test javna praznina givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Postavi targetSet = novi HashSet (Arrays.asList (sourceArray)); }
Alternativno, Postavi može se stvoriti prvo, a zatim ispuniti elementima niza:
@Test javna praznina givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Postavi targetSet = novi HashSet (); Collections.addAll (targetSet, sourceArray); }
2.2. Korištenje Google Guave
Dalje, pogledajmo konverzija Guave iz niza u Set:
@Test javna praznina givenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Postavi targetSet = Sets.newHashSet (sourceArray); }
2.3. Korištenje zbirki Apache Commons
Na kraju, izvršimo pretvorbu pomoću biblioteke Commons Collection iz Apachea:
@Test javna praznina givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Postavi targetSet = novi HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }
3. Pretvori Set u Array
3.1. Korištenje obične Jave
Pogledajmo sada naličje - pretvaranje postojećeg skupa u niz:
@Test javna praznina givenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Integer [] targetArray = sourceSet.toArray (novi Integer [0]); }
Imajte na umu, to toArray (novi T [0]) je preferirani način upotrebe metode u odnosu na toArray (novi T [veličina]). Kao što Aleksey Shipilëv dokazuje u svom blogu, čini se bržim, sigurnijim i čišćim.
3.2. Korištenjem Guave
Dalje - rješenje Guava:
@Test javna praznina givenUsingGuava_whenSetConvertedToArray_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); int [] targetArray = Ints.toArray (sourceSet); }
Primijetite da koristimo Ints API iz Guave, pa je ovo rješenje specifično za vrstu podataka s kojom radimo.
4. Zaključak
Implementacija svih ovih primjera i isječaka koda možete pronaći na Githubu - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo biti lako uvesti i pokrenuti kakav jest.