Mai mult
Cum sa faci o Lista noua in Java
Vom crea un " Set " ca:
Set myset = new HashSet()
Cum putem crea o "Listă" în Java?
704
24
Vom crea un " Set " ca:
Set myset = new HashSet()
Cum putem crea o "Listă" în Java?
sau cu medicamente generice (Java 7 sau mai târziu)
sau cu medicamente generice (java Vechi versiuni)
În plus, dacă doriți să creați o listă care are lucruri în ea (deși acesta va fi de dimensiune fixă):
Lasă-mă să rezuma și de a adăuga ceva:
JDK
Guava
Lista Imuabil
Goliți Lista imuabil
Lista de Caractere
Lista de numere Întregi
În Java 8
Pentru a crea un non-gol listă de dimensiune fixă (operațiuni, cum ar fi adăugați, eliminați, etc., nu sunt acceptate):
Pentru a crea un non-gol mutabil lista:
În Java 9
Folosind un nou
Lista.de(...)
metode fabrică statice:În Java 10
Folosind Variabilă Locală de Tip Inferență:
Și să urmeze cele mai bune practici...
Don't folosi crud tipuri
Deoarece Java 5, medicamentele generice au fost o parte a limbii ar trebui să le folosești:
Program de interfețe
De exemplu, programul de la "Lista" interfata:
În loc de:
Citiți acest, apoi citiți acest și acest. De 9 ori din 10'll utilizați una dintre cele două implementări.
În fapt, doar citit Sun's Ghid pentru Colecții cadru.
Deoarece Java 7 ai tipul de inferență pentru generic exemplu, creația, astfel încât nu este nevoie pentru a duplica parametrii generici pe partea dreaptă de sarcină:
O mărime fixă, lista poate fi definit ca:
Pentru imuabile liste puteți utiliza Guava biblioteca:
List este doar o interfata la fel ca Set.
Ca HashSet este o implementare a unui Set care are anumite proprietăți în ceea ce privește add / căutare / elimina performanță, ArrayList este gol punerea în aplicare a unei Liste.
Dacă aveți o privire la documentația pentru respectivul interfețe veți găsi "Toate Cunoscute de punere în Aplicare Clase" și puteți decide care unul este mai potrivit pentru nevoile dumneavoastra.
Sunt șanse ca acesta's ArrayList.
"Lista" este o interfață ca " Set "și a
ArrayList" și " LinkedList
ca de uz general implementări.Putem crea Lista ca:
Putem crea, de asemenea, o dimensiune fixă lista ca:
Ne-ar fi aproape întotdeauna folosind
ArrayList
opun `LinkedList de implementare:LinkedList
folosește o mulțime de spațiu pentru obiecte și efectuează prost atunci când avem o mulțime de elemente.LinkedList
necesită O(n) timp, comparativ cu O(1) în ArrayList`.Listă creată de
Tablouri.asList
de mai sus nu pot fi modificate din punct de vedere structural, dar elementele sale pot fi modificate.Java 8
Ca pe doc, metoda Colecțiilor.unmodifiableList` returnează o unmodifiable vedere lista specificată. Putem obține astfel:
Java 9
În caz că folosiți Java 9 atunci:
Java 10
În cazul în care suntem la Java 10 atunci metoda
Colectoare.unmodifiableList
va returna un exemplu de situare cu adevărat de unmodifiable lista introdus în Java 9. Verifica acest lucru răspunde pentru mai multe informații despre diferența în Colecții.unmodifiableListvs
Colectoare.unmodifiableList` în Java 10.Uneori - dar numai foarte rar - în loc de un new ArrayList, poate doriți un nou LinkedList. Începe cu ArrayList și dacă aveți probleme de performanță și dovezi că lista este problema, și o mulțime de adăugarea și ștergerea de pe lista asta - atunci - nu înainte de a - comuta la un LinkedList și a vedea dacă lucrurile se vor îmbunătăți. Dar, în principal, stick cu ArrayList si totul va fi bine.
Sau cu medicamente generice
Puteți, desigur, înlocuiți șir cu orice tip de variabilă, cum ar fi Integer, de asemenea.
Un exemplu:
Poti sa te uiti la javadoc pentru List și de a găsi toate cunoscute de punere în aplicare clase de "Listă" de interfață, care sunt incluse cu java api.
Folosind Google Colecții, ai putea folosi următoarele metode în Lists clasa
Există suprasarcini pentru varargs de inițializare și de inițializare de la o
Iterable<T>
.Avantajul acestor metode este că don't nevoie pentru a specifica parametrul generic în mod explicit ca tine ar fi cu constructorul - compilatorul va deduce din tipul variabilei.
Ca o opțiune, puteți folosi dublu bretele de inițializare aici:
Aveți nevoie pentru a importa Lista " și " ArrayList`.
Cu Java 9, vă sunt capabili de a face următoarele pentru a crea un imuabil "Listă":
Există multe modalități de a crea un Set și o Listă. HashSet și ArrayList sunt doar două exemple. Este, de asemenea, destul de comună de a folosi medicamente generice, cu colecții în aceste zile. Îți sugerez să te uiți la ceea ce sunt
Aceasta este o bună introducere pentru java's built-colecții. http://java.sun.com/javase/6/docs/technotes/guides/collections/overview.html
Mai bine ai folosi medicamente generice cum a sugerat de mai jos:
În cazul în care utilizați LinkedList.
Mai multe opțiuni pentru a face același lucru cu Java 8, nu mai bine, nu mai rău, doar diferit și dacă vrei să faci ceva de lucru suplimentar cu listele, Stream va oferi mai multe alternative (filtru, harta, reduce, etc.)
Următoarele sunt câteva moduri în care puteți crea liste.
java.lang.UnsupportedOperationException
dacă încerci să faci așa.Listă fixedSizeList = Matrice.asList(new String[] {"Masculin", "Feminin"});
Listă list = new ArrayList<>();
LinkedList în java, Dacă aveți nevoie pentru a face frecvente de inserare/stergere de elemente de pe lista, ar trebui să utilizați
LinkedList "în loc de" ArrayList`Listă linkedList = new LinkedList<>();