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.