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.