inicializace seznamu Java V jednom řádku

0 Comments

přehled

v tomto rychlém tutoriálu budeme zkoumat, jak inicializovat seznam pomocí jednorázových vložek.

další čtení:

sbírky.emptyList () vs. nová Instance seznamu

Naučte se rozdíly mezi sbírkami.emptyList () a nový seznam instance.,
Čtěte více →

Návod na Java ArrayList

Rychlé a praktické průvodce ArrayList v Javě
Čtěte více →

Vytvořit Z Pole

můžeme vytvořit Seznam z pole. A díky literály pole můžeme inicializovat je v jednom řádku:

můžeme věřit varargs mechanismus pro zpracování vytvoření pole. Díky tomu můžeme napsat stručnější a čitelnější Kód:

výsledná instance tohoto kódu implementuje rozhraní seznamu,ale není to java.utile.,ArrayList nebo LinkedList. Místo toho je to seznam podporovaný původní pole, který má dva důsledky, které budeme se podívat na ve zbytku této části.

ačkoli název třídy se stane být ArrayList, je to v Javě.utile.Pole balíček.

2.1. Pevná velikost

instance výsledku z polí.asList bude mít pevnou velikost:

2.2. Sdílený Odkaz

původní pole a seznam sdílet stejnou odkazy na objekty:

Vytvořit Z Potoka (Java 8)

můžeme snadno převést Proud na nějakou Sbírku.,

proto s továrními metodami pro proudy můžeme vytvářet a inicializovat seznamy v jednom řádku:

měli bychom zde poznamenat, že sběratelé.toList () nezaručuje přesné provedení vráceného seznamu.

neexistuje žádná obecná smlouva o mutabilitě, serializovatelnosti nebo bezpečnosti závitu vrácené instance. Takže náš kód by se neměl spoléhat na některou z těchto vlastností.

některé zdroje tento proud zvýrazňují.z(…).collect (…) může mít větší paměť a výkon než pole.asList ()., Ale téměř ve všech případech je to taková mikro-optimalizace, že je malý rozdíl.

Tovární Metody (Java 9)

JDK 9 přináší několik pohodlné tovární metody pro sbírky:

Jeden důležitý detail je, že vrácená instance jsou neměnné. Kromě toho mají tovární metody několik výhod v efektivitě prostoru a bezpečnosti závitů.

toto téma je podrobněji prozkoumáno v tomto článku.,

inicializace dvojitého ortézy

na několika místech najdeme metodu zvanou inicializace dvojitého ortézy, která vypadá takto:

název „inicializace dvojitého ortézy“ je docela zavádějící. Zatímco syntaxe může vypadat kompaktně a elegantně, nebezpečně skrývá to, co se děje pod kapotou.

v Javě není ve skutečnosti syntaktický prvek s dvojitou závorou; jedná se o dva bloky formátované záměrně tímto způsobem.

s vnějšími závorkami prohlašujeme anonymní vnitřní třídu, která bude podtřídou ArrayList., Můžeme prohlásit podrobnosti naší podtřídy uvnitř těchto rovnátek.

jako obvykle můžeme použít bloky inicializátoru instance a odtud pochází vnitřní pár závor.

stručnost této syntaxe je lákavá. Nicméně, to je považováno za Anti-vzor.

Chcete – li si přečíst více o inicializaci double-brace, podívejte se na náš článek zde.

závěr

moderní Java nabízí několik možností, jak vytvořit kolekci v jednom řádku. Metoda, kterou si vybereme, je téměř výhradně na osobní preference spíše než na technické uvažování.,

důležitým jídlem je to, že ačkoli to vypadá elegantně, Anti-vzor anonymní inicializace vnitřní třídy (aka double brace) má mnoho negativních vedlejších účinků.

jako vždy je Kód k dispozici na Githubu.

začněte s Jarní 5 a na Jaře Boot 2, a to prostřednictvím Naučit Jarní kurz:

>>


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *