Java Lista Alustus Yksi Rivi
Yleistä
tässä nopea opetusohjelma, me”ll tutkia, miten alustaa Lista käyttäen yksi-alukset.
lisätietoa:
Kokoelmat.emptyList () vs. New List Instance
Opas Java ArrayList
Luo Array
Me voimme itse luoda Listan array. Ja kiitos array literaaleja, voimme alustaa ne yhdellä rivillä:
– Emme voi luottaa varargs mekanismi käsitellä array luominen. Kanssa, että voimme kirjoittaa enemmän tiivis ja helppolukuinen koodi:
tuloksena esimerkiksi tämä koodi toteuttaa List-rajapinnan, mutta se ei”t java.util.,ArrayList tai LinkedList. Sen sijaan se ”on luettelo, jota tukee alkuperäinen array, joka on kaksi merkitystä, että me” ll tarkastella muualla tässä osassa.
Vaikka luokan”s nimi sattuu olemaan ArrayList, se”s java.util.Matriisipaketti.
2.1. Kiinteä koko
matriisien tulosasteikko.aslistin koko on kiinteä:
2.2. Jaettu Viite
alkuperäinen jono ja lista jakaa saman viittauksia esineitä:
Luo Stream (Java 8)
Voimme helposti muuntaa Stream tahansa Kokoelma.,
näin Ollen, kanssa tehtaan menetelmiä Syötteeseen, voimme luoda ja alustaa luettelot yhdellä rivillä:
– Meidän pitäisi huomata, että Keräilijöille.toList () ei takaa palautetun Listan tarkkaa toteutumista.
siellä”ei ole yleistä sopimusta palautetun instanssin mutability -, serializability-tai lankaturvallisuudesta. Joten, meidän koodi pitäisi ” t luottaa mihinkään näistä ominaisuuksista.
jotkut lähteet korostavat tuota virtaa.sellaisten(…).collect (…) voi olla suurempi muisti ja suorituskyky jalanjälki kuin ryhmät.asList()., Mutta lähes kaikissa tapauksissa se ” on niin mikro-optimointi, että ei ole juurikaan eroa.
Tehdas Menetelmiä (Java 9)
JDK 9 esittelee useita käteviä tehdas menetelmiä kokoelmat:
Yksi tärkeä yksityiskohta on, että palasi tapauksissa ovat muuttumattomia. Sen lisäksi tehtaan menetelmillä on useita etuja tilatehokkuudessa ja lankaturvallisuudessa.
tätä aihetta tarkastellaan lisää tässä artikkelissa.,
Tupla-Ahdin Alustus
useissa paikoissa, voimme löytää menetelmä nimeltä tupla-ahdin alustus, joka näyttää tältä:
nimi ”double-ahdin alustus” on melko harhaanjohtava. Vaikka syntaksi voi näyttää kompakti ja tyylikäs, se kätkee vaarallisesti mitä tapahtuu konepellin alla.
Javassa on”t itse asiassa kaksois-ahdin syntaksielementti; nämä ovat kaksi lohkoa, jotka on alustettu tarkoituksellisesti tällä tavalla.
uloimmilla henkseleillä julistamme anonyymin sisäluokan, joka on Arraylistin alaluokka., Voimme julistaa yksityiskohtia meidän alaluokka sisällä nämä henkselit.
Kuten tavallista, voimme käyttää esimerkiksi alustajan lohkot, ja että on, jos sisäinen pari henkselit tulee.
tämän syntaksin lyhyys on houkuttelevaa. Sitä pidetään kuitenkin antikuviona.
Lue lisää double-ahdin alustuksesta, katso artikkelimme täältä.
Johtopäätös
Moderni Java tarjoaa useita vaihtoehtoja luoda Kokoelma yksi rivi. Valitsemamme menetelmä on lähes kokonaan kiinni henkilökohtaisesta mieltymyksestä eikä teknisestä päättelystä.,
tärkeä takeaway on, että vaikka se näyttää siro, anti-mallia nimetön sisäinen luokka alustus (aka kaksinkertainen ahdin) on monia kielteisiä sivuvaikutuksia.
Kuten aina, koodi on saatavilla GitHub.
aloita Kevät 5, ja Kevät Boot 2 kautta Oppia Kevään aikana:
>> tutustu KURSSIN