Konvertálás lista és halmaz között Java-ban
1. Áttekintés
Ebben a rövid cikkben megnézzük közötti konverzió a Lista és a Készlet - kezdve a Plain Java-val, a Guava és az Apache Commons Collections könyvtár használatával, végül pedig a Java 10-tel.
Ez a cikk a „Java - Vissza az alapokhoz” sorozat része, itt, Baeldungon.
2. Konvertálás Lista nak nek Készlet
2.1. Sima Java-val
Kezdjük az átalakítással a-tól Lista a Készlet Java használatával:
public void givenUsingCoreJava_whenListConvertedToSet_thenCorrect () {List sourceList = Arrays.asList (0, 1, 2, 3, 4, 5); Set targetSet = új HashSet (sourceList); }
Mint láthatja, az átalakítási folyamat típusbiztonságos és egyszerű - mivel az egyes gyűjtemények kivitelezői egy másik gyűjteményt fogadnak el forrásként.
2.2. WGuava
Végezzük el ugyanazt az átalakítást Guava használatával:
public void givenUsingGuava_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Set targetSet = Sets.newHashSet (forrásLista); }
2.3. Apache Commons gyűjteményekkel
Ezután használjuk a Commons Collections API-t a Lista és a Készlet:
public void givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Set targetSet = új HashSet (6); CollectionUtils.addAll (targetSet, sourceList); }
2.4. Java 10-el
Egy további lehetőség a Set.copyOf a Java 10-ben bevezetett statikus gyári módszer:
public void givenUsingJava10_whenListConvertedToSet_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); Set targetSet = Set.copyOf (forrásLista); }
Vegye figyelembe, hogy a Készlet így létrehozva nem módosítható.
3. Konvertálás Készlet nak nek Lista
3.1. Sima Java-val
Most végezzük a fordított konverziót - a-tól Készlet a Lista - Java használatával:
public void givenUsingCoreJava_whenSetConvertedToList_thenCorrect () {Set sourceSet = Készletek.newHashSet (0, 1, 2, 3, 4, 5); List targetList = new ArrayList (sourceSet); }
3.2. Guavával
És a guavai megoldás:
public void givenUsingGuava_whenSetConvertedToList_thenCorrect () {Set sourceSet = Készletek.newHashSet (0, 1, 2, 3, 4, 5); List targetList = Lists.newArrayList (sourceSet); }
Nagyon hasonlít a java megközelítéshez, csak egy kicsit kevesebb duplikált kóddal.
3.3. Apache Commons gyűjteményekkel
Lássuk most a Commons Collections megoldást a Készlet és a Lista:
public void givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); List targetList = new ArrayList (6); CollectionUtils.addAll (targetList, sourceSet); }
3.4. Java 10-el
Végül használhatjuk a List.copyOf amit a Java 10-ben vezettek be:
public void givenUsingJava10_whenSetConvertedToList_thenCorrect () {Set sourceSet = Beállítások.newHashSet (0, 1, 2, 3, 4, 5); List targetList = List.copyOf (sourceSet); }
Nem szabad megfeledkeznünk arról, hogy az eredmény Lista módosíthatatlan.
4. Következtetés
Mindezen példák és kódrészletek megvalósítása megtalálható a GitHubon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.