Inicializuje sa HashSet v čase stavby

1. Prehľad

V tomto rýchlom návode si predstavíme rôzne metódy inicializácia HashSet s hodnotami, v čase jeho výstavby.

Ak namiesto toho chcete preskúmať funkcie aplikácie HashSet, pozrite si tento hlavný článok tu.

Ponoríme sa do Javy zabudované metódy od Javy 5 a skôr nasledované novými mechanizmus zavedený od Javy 8. Uvidíme tiež a metóda vlastného úžitku a nakoniec preskúmajte funkcie poskytované serverom Knižnice zbierok tretích strán, Konkrétne Google Guava.

Ak máte šťastie, že ste už migrovali na JDK9 +, môžete jednoducho použiť metódy na zhromažďovanie údajov.

2. Vstavané metódy Java

Začnime preskúmaním troch zabudovaných mechanizmy dostupné od verzie Java 5 alebo skôr.

2.1. Používanie inej inštancie zhromažďovania

Môžeme prejsť existujúcim inštancia inej zbierky inicializovať Nastaviť. V nasledujúcom príklade používame vložený riadok Zoznam:

Set set = new HashSet (Arrays.asList ("a", "b", "c"));

2.2. Používanie anonymnej triedy

V ešte ďalšom prístupe môžeme na pridanie prvku použiť anonymnú triedu HashSet.

Všimnite si použitie dvojitých zložených zátvoriek. Tento prístup je technicky veľmi drahé pretože vytvára anonymnú triedu zakaždým, keď sa volá.

Takže podľa toho, ako často potrebujeme inicializovať Nastaviť môžeme skúste sa vyhnúť použitiu tohto prístupu:

Set set = new HashSet () {{add ("a"); pridať („b“); pridať („c“); }};

2.3. Používanie metódy Collections Utility od verzie Java 5

Java Zbierky užitočnosť trieda poskytuje pomenovanú metódu singleton vytvoriť Nastaviť s jediným prvkom. The Nastaviť inštancia vytvorená pomocou singleton metóda je nemenný to znamená, že k tomu nemôžeme pridať ďalšie hodnoty.

Existujú situácie, najmä pri testovaní jednotiek, kde musíme vytvoriť a Nastaviť s jedinou hodnotou:

Set set = Collections.singleton ("a");

3. Definovanie metódy vlastného nástroja

Môžeme definovať a statické finále metóda ako je uvedené nižšie. Metóda prijíma premenné argumenty.

Použitím Zbierky.pridat Vsetko ktorý prijíma zbierkový objekt a pole hodnôt je najlepšie medzi ostatnými z dôvodu nízkej réžie hodnôt kopírovania.

The metóda používa generiká takže môžeme odovzdávať hodnoty ľubovoľného typu:

verejné statické finále Set newHashSet (T ... objs) {Set set = new HashSet (); Collections.addAll (set, objs); návratová súprava; }

Túto metódu je možné použiť v našom kóde, ako je uvedené nižšie.

Set set = newHashSet ("a", "b", "c");

4. Používanie Prúd Od verzie Java 8

So zavedením Prúd API v Jave 8, máme ďalšie možnosti. Môžeme použiť Prúd s Zberatelia ako je uvedené v nasledujúcom kóde:

Set set = Stream.of ("a", "b", "c") .collect (Collectors.toCollection (HashSet :: new));

5. Používanie knižnice zbierok tretích strán

Existuje niekoľko knižníc zbierok tretích strán vrátane Google Guava, Apache Commons Collections a Eclipse Collections.

Tieto knižnice poskytujú pohodlné obslužné metódy na inicializáciu zbierok, ako je Set. Odkedy Google Guava je jedným z najbežnejšie používaných, tu máme príklad. Guava má pohodlné metódy pre meniteľné a nemenné Nastaviť objekty:

Set set = Sets.newHashSet ("a", "b", "c");

Podobne má Guava triedu nástrojov na vytváranie nemenný Nastaviť inštancie, ako vidíme na príklade nižšie.

Set set = ImmutableSet.of ("a", "b", "c");

6. Záver

Na záver sme videli niekoľko spôsobov, ako a HashSet je možné inicializovať, kým je zostrojený. Tieto prístupy nemusia v žiadnom prípade nevyhnutne pokrývať všetky možné spôsoby. Bol to iba pokus o predstavenie najbežnejších spôsobov.

Jedným z takýchto prístupov, ktoré tu nie sú obsiahnuté, by mohlo byť použitie nástroja na tvorbu objektov na vytvorenie a Nastaviť.

Ako vždy funguje príklad kódu, ktorý je k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found