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.