Pretvaranje između popisa i skupa u Javi

1. Pregled

U ovom kratkom članku ćemo pogledati pretvorba između a Popis i a Postavi - počevši od obične Jave, koristeći Guavu i biblioteku Apache Commons Collections, i na kraju, od Jave 10.

Ovaj je članak dio serije "Java - Povratak na osnovno" ovdje na Baeldungu.

2. Pretvori Popis do Postavi

2.1. S običnom Java

Počnimo s pretvaranjem od Popis do a Postavi koristeći Javu:

javna praznina givenUsingCoreJava_whenListConvertedToSet_thenCorrect () {Popis sourceList = Arrays.asList (0, 1, 2, 3, 4, 5); Postavi targetSet = novi HashSet (sourceList); }

Kao što vidite, postupak pretvorbe siguran je za tip i jednostavan - budući da konstruktori svake kolekcije prihvaćaju drugu kolekciju kao izvor.

2.2. Wiva Guava

Napravimo istu pretvorbu koristeći Guavu:

javna praznina givenUsingGuava_whenListConvertedToSet_thenCorrect () {Popis sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Postavi targetSet = Sets.newHashSet (sourceList); }

2.3. S zbirkama Apache Commons

Dalje, upotrijebimo API Commons Collections za pretvorbu između Popis i a Postavi:

javna praznina givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect () {Popis sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Postavi targetSet = novi HashSet (6); CollectionUtils.addAll (targetSet, sourceList); }

2.4. Uz Javu 10

Jedna od dodatnih mogućnosti je korištenje Set.copyOf statička tvornička metoda uvedena u Javi 10:

javna praznina givenUsingJava10_whenListConvertedToSet_thenCorrect () {Popis sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Postavi targetSet = Set.copyOf (sourceList); }

Imajte na umu da a Postavi stvoren na ovaj način je neizmijenjiv.

3. Pretvori Postavi do Popis

3.1. S običnom Java

Ajmo sada napraviti obrnutu pretvorbu - od Postavi do a Popis - pomoću Jave:

javna praznina givenUsingCoreJava_whenSetConvertedToList_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Popis targetList = novi ArrayList (sourceSet); }

3.2. S Guavom

I rješenje Guava:

javna praznina givenUsingGuava_whenSetConvertedToList_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Popis targetList = Lists.newArrayList (sourceSet); } 

Vrlo sličan java pristupu, samo s malo manje dupliciranim kodom.

3.3. S zbirkama Apache Commons

Pogledajmo sada rješenje Commons Collections za pretvorbu između Postavi i a Popis:

javna praznina givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Popis targetList = novi ArrayList (6); CollectionUtils.addAll (targetList, sourceSet); }

3.4. Uz Javu 10

Napokon, možemo koristiti List.copyOf koji je predstavljen u Javi 10:

javna praznina givenUsingJava10_whenSetConvertedToList_thenCorrect () {Postavi sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Popis targetList = List.copyOf (sourceSet); }

Moramo imati na umu da rezultat Popis je neizmijenjiv.

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.