A HashSet inicializálása az építés idején
1. Áttekintés
Ebben a gyors bemutatóban bemutatjuk a különböző módszereket inicializálása HashSet értékekkel, építése idején.
Ha ehelyett szeretné felfedezni a HashSet, itt olvassa el ezt az alapvető cikket.
Bemerülünk a Java-ba beépített módszerek Java 5 óta és azelőtt utána új a Java 8 óta bevezetett mechanizmus. Meglátjuk a egyedi segédprogram módszer és végül fedezze fel a Harmadik fél gyűjteményi könyvtárai, Különösen a Google Guava.
Ha szerencséd van, hogy már átálltál a JDK9 + -ra, egyszerűen használhatod a gyári gyári módszereket.
2. Java beépített módszerek
Kezdjük három beépített elemzésével a Java 5 vagy korábbi verziói óta elérhető mechanizmusok.
2.1. Egy másik gyűjteményes példány használata
Át tudunk adni egy létezőt egy másik gyűjtemény példánya inicializálni a Készlet. Az alábbi példában egy létrehozott sort használunk Lista:
Set set = new HashSet (Tömbök.asList ("a", "b", "c"));
2.2. Névtelen osztály használata
Egy másik megközelítésben az anonim osztályt használhatjuk egy elem hozzáadásához HashSet.
Vegye figyelembe a kettős göndör zárójel használatát. Ez a megközelítés az technikailag nagyon drága mivel névtelen osztályt hoz létre minden alkalommal, amikor hívják.
Tehát attól függően, hogy milyen gyakran kell inicializálnunk Készlet tudunk próbálja elkerülni ezt a megközelítést:
Set set = new HashSet () {{add ("a"); add ("b"); add ("c"); }};
2.3. A Collection Utility módszer használata a Java 5 óta
A Java Gyűjtemények hasznosság osztály biztosítja a megnevezett módszert szingli létrehozni a Készlet egyetlen elemmel. A Készlet a szingli módszer az változhatatlan vagyis nem adhatunk hozzá több értéket.
Különösen az egység tesztelésénél vannak olyan helyzetek, amikor létre kell hoznunk a Készlet egyetlen értékkel:
Set set = Gyűjtemények.singleton ("a");
3. Az egyéni segédprogram módszerének meghatározása
Meghatározhatjuk a statikus döntő módszer az alábbiak szerint. A módszer, a metódus elfogadja a változó argumentumokat.
Használata Collections.addAll amely elfogadja a gyűjtési objektumot és egy értéktömböt az legjobb többek között a másolási értékek alacsony rezsije miatt.
A módszer a generikus gyógyszereket használja így bármilyen típusú értéket átadhatunk:
public static final Set newHashSet (T ... objs) {Set set = new HashSet (); Collections.addAll (set, objs); visszatérő készlet; }
A hasznossági módszer kódunkban az alábbiak szerint használható.
Set set = newHashSet ("a", "b", "c");
4. Használata Folyam Mivel a Java 8
Bevezetésével Folyam API a Java 8-ban, további lehetőségeink vannak. Tudjuk használni Folyam val vel Gyűjtők az alábbi kód szerint:
Set set = Stream.of ("a", "b", "c") .collect (Collectors.toCollection (HashSet :: new));
5. A harmadik fél gyűjteményének használata
Több harmadik féltől származó gyűjtemény-könyvtár létezik, köztük a Google Guava, az Apache Commons és az Eclipse gyűjtemények, hogy csak néhányat említsünk.
Ezek a könyvtárak kényelmes segédprogramokat kínálnak a gyűjtemények, például a Set inicializálásához. Mivel Google Guava itt az egyik leggyakrabban használt példánk van rá. A guavának kényelmes módszerei vannak a mutálható és megváltoztathatatlanokra Készlet tárgyak:
Set set = Sets.newHashSet ("a", "b", "c");
Hasonlóképpen, a Guava-ban van egy segédosztály a létrehozáshoz változhatatlan Készlet példányok, amint azt az alábbi példában láthatjuk.
Set set = ImmutableSet.of ("a", "b", "c");
6. Következtetés
Összegzésképpen számos módot láttunk arra, hogy a HashSet szerkesztése közben inicializálható. Ezek a megközelítések nem feltétlenül fedik le az összes lehetséges módot. Csak kísérlet volt a leggyakoribb módszerek bemutatására.
Ilyen megközelítés, amelyet itt nem fedünk le, lehet az objektumkészítő használata a Készlet.
Mint mindig működő kód, a példa elérhető a GitHubon.