Java List inicializálás egy sorban
áttekintés
ebben a gyors bemutatóban megvizsgáljuk, hogyan lehet inicializálni a listát egysoros.
további olvasmányok:
gyűjtemények.emptyList () vs. Új lista példány
Útmutató a Java ArrayList
Létre egy Tömböt
létrehozhatunk egy Listát egy tömb. A tömb literáloknak köszönhetően egy sorban inicializálhatjuk őket:
bízhatunk abban, hogy a varargs mechanizmus kezeli a tömb létrehozását. Ezzel tömörebb és olvashatóbb kódot tudunk írni:
ennek a kódnak az eredménypéldánya implementálja a Listafelületet,de nem java.util.,ArrayList vagy LinkedList. Helyette, ez egy lista mögött az eredeti tömb, amelynek két következménye, hogy nézzük meg a többi ebben a szakaszban.
bár az osztály neve történetesen ArrayList, ez a java.util.Tömbök csomag.
2.1. Fix méret
az Eredménypéldány a tömbökből.az asList rögzített méretű lesz:
2.2. Közös Referencia
Az eredeti tömb, valamint a lista ugyanaz a hivatkozásokat, hogy az objektumok:
Létre egy Patak (Java 8)
könnyen átalakítani egy Patak hogy ilyen Gyűjtemény.,
ezért a patakok gyári módszereivel egy sorban hozhatunk létre és inicializálhatunk listákat:
itt meg kell jegyeznünk, hogy a gyűjtők.a toList () nem garantálja a visszaküldött lista pontos végrehajtását.
nincs általános szerződés a visszaküldött példány változékonyságáról, szerializálhatóságáról vagy menetbiztonságáról. Tehát a kód nem támaszkodhat ezen tulajdonságok bármelyikére.
egyes források kiemelik ezt az adatfolyamot.a(…).a collect (…) memóriája és teljesítményigénye nagyobb lehet, mint a Tömböké.asList ()., De szinte minden esetben, ez egy ilyen mikro-optimalizálás, hogy kevés a különbség.
gyári módszerek (Java 9)
JDK 9 számos kényelmes gyári módszert vezet be a gyűjteményekhez:
az egyik fontos részlet az, hogy a visszaküldött példányok megváltoztathatatlanok. Ezen túlmenően a gyári módszereknek számos előnye van a térhatékonyság és a menetbiztonság terén.
ezt a témát részletesebben tárgyaljuk ebben a cikkben.,
Double-Brace Inicialization
több helyen megtalálható a double-brace inicialization nevű módszer, amely így néz ki:
a “double-brace inicialization” név meglehetősen félrevezető. Míg a szintaxis tűnhet kompakt, elegáns, veszélyesen elrejti, hogy mi folyik a motorháztető alatt.
nincs valójában egy kettős zárójel szintaxis elem Java; ezek két blokk formázott szándékosan ily módon.
a külső zárójelekkel egy névtelen belső osztályt deklarálunk, amely az ArrayList alosztálya lesz., Ezen zárójelek belsejében deklarálhatjuk az alosztályunk részleteit.
mint általában, használhatunk például inicializáló blokkokat, innen származik a belső fogszabályozó pár.
ennek a szintaxisnak a rövidsége csábító. Azonban ez tekinthető anti-minta.
Ha többet szeretne megtudni a kettős zárójel inicializálásáról, nézze meg cikkünket itt.
következtetés
a Modern Java számos lehetőséget kínál egy gyűjtemény létrehozására egy sorban. Az általunk választott módszer szinte teljesen a személyes preferencia, nem pedig a technikai érvelés.,
fontos Elvitel az, hogy bár kecsesnek tűnik, az anonim belső osztály inicializálásának (más néven kettős zárójel) anti-mintája számos negatív mellékhatással jár.
mint mindig, a kód elérhető a GitHub-on.
Kezdje a tavaszi 5-ös és a tavaszi Boot 2-vel A Learn Spring tanfolyamon keresztül:
> >