Cum sa faci o Lista noua in Java

Vom crea un " Set " ca:

Set myset = new HashSet()

Cum putem crea o "Listă" în Java?

Comentarii la întrebare (3)
Soluția
List myList = new ArrayList();

sau cu medicamente generice (Java 7 sau mai târziu)

List myList = new ArrayList();

sau cu medicamente generice (java Vechi versiuni)

List myList = new ArrayList();
Comentarii (7)

În plus, dacă doriți să creați o listă care are lucruri în ea (deși acesta va fi de dimensiune fixă):

List messages = Arrays.asList("Hello", "World!", "How", "Are", "You");
Comentarii (4)

Lasă-mă să rezuma și de a adăuga ceva:

JDK

1. new ArrayList();
2. Arrays.asList("A", "B", "C")

Guava

1. Lists.newArrayList("Mike", "John", "Lesly");
2. Lists.asList("A","B", new String [] {"C", "D"});

Lista Imuabil

1. Collections.unmodifiableList(new ArrayList(Arrays.asList("A","B")));
2. ImmutableList.builder()                                      // Guava
            .add("A")
            .add("B").build();
3. ImmutableList.of("A", "B");                                  // Guava
4. ImmutableList.copyOf(Lists.newArrayList("A", "B", "C"));     // Guava

Goliți Lista imuabil

1. Collections.emptyList();
2. Collections.EMPTY_LIST;

Lista de Caractere

1. Lists.charactersOf("String")                                 // Guava
2. Lists.newArrayList(Splitter.fixedLength(1).split("String"))  // Guava

Lista de numere Întregi

Ints.asList(1,2,3);                                             // Guava
Comentarii (2)

Î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):

List list = Arrays.asList(1, 2); // but, list.set(...) is supported

Pentru a crea un non-gol mutabil lista:

List list = new ArrayList(Arrays.asList(3, 4));

În Java 9

Folosind un nou Lista.de(...) metode fabrică statice:

List immutableList = List.of(1, 2);

List mutableList = new ArrayList(List.of(3, 4));

În Java 10

Folosind Variabilă Locală de Tip Inferență:

var list1 = List.of(1, 2);

var list2 = new ArrayList(List.of(3, 4));

var list3 = new ArrayList();

Ș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:

List list = new ArrayList(); // Good, List of String

List list = new ArrayList(); // Bad, don't do that!

Program de interfețe

De exemplu, programul de la "Lista" interfata:

List list = new ArrayList();

În loc de:

ArrayList list = new ArrayList(); // This is a bad idea!
Comentarii (1)

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.

Comentarii (5)

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ă:

List list = new ArrayList();

O mărime fixă, lista poate fi definit ca:

List list = Arrays.asList("foo", "bar");

Pentru imuabile liste puteți utiliza Guava biblioteca:

List list = ImmutableList.of("foo", "bar");
Comentarii (1)
//simple example creating a list form a string array

String[] myStrings = new String[] {"Elem1","Elem2","Elem3","Elem4","Elem5"};

List mylist = Arrays.asList(myStrings );

//getting an iterator object to browse list items

Iterator itr= mylist.iterator();

System.out.println("Displaying List Elements,");

while(itr.hasNext())

  System.out.println(itr.next());
Comentarii (0)

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.

Comentarii (0)

"Lista" este o interfață ca " Set "și a ArrayList" și " LinkedList ca de uz general implementări.

Putem crea Lista ca:

 List arrayList = new ArrayList();
 List linkedList = new LinkedList(); 

Putem crea, de asemenea, o dimensiune fixă lista ca:

List list = Arrays.asList("A", "B", "C");

Ne-ar fi aproape întotdeauna folosind ArrayList opun `LinkedList de implementare:

  1. LinkedList folosește o mulțime de spațiu pentru obiecte și efectuează prost atunci când avem o mulțime de elemente.
  2. Orice indexate funcționarea în LinkedList necesită O(n) timp, comparativ cu O(1) în ArrayList`.
  3. Verifica asta link pentru mai multe informații.

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:

Collections.unmodifiableList(Arrays.asList("A", "B", "C"));

Java 9

În caz că folosiți Java 9 atunci:

List list = List.of("A", "B");

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.unmodifiableListvsColectoare.unmodifiableList` în Java 10.

Comentarii (0)

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.

Comentarii (0)
List list = new ArrayList();

Sau cu medicamente generice

List list = new ArrayList();

Puteți, desigur, înlocuiți șir cu orice tip de variabilă, cum ar fi Integer, de asemenea.

Comentarii (0)

Un exemplu:

List somelist = new ArrayList();

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.

Comentarii (0)

Folosind Google Colecții, ai putea folosi următoarele metode în Lists clasa

import com.google.common.collect.Lists;

// ...

List strings = Lists.newArrayList();

List integers = Lists.newLinkedList();

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.

Comentarii (0)

Ca o opțiune, puteți folosi dublu bretele de inițializare aici:

List list = new ArrayList(){
  {
   add("a");
   add("b");
  }
};
Comentarii (2)
List nameOfList = new ArrayList();

Aveți nevoie pentru a importa Lista " și " ArrayList`.

Comentarii (0)

Cu Java 9, vă sunt capabili de a face următoarele pentru a crea un imuabil "Listă":

List immutableList = List.of(1, 2, 3, 4, 5);

List mutableList = new ArrayList(immutableList);
Comentarii (0)

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

Comentarii (0)
List arrList = new ArrayList();

Mai bine ai folosi medicamente generice cum a sugerat de mai jos:

List arrList = new ArrayList();

arrList.add("one");

În cazul în care utilizați LinkedList.

List lnkList = new LinkedList();
Comentarii (0)

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.)

List listA = Stream.of("a", "B", "C").collect(Collectors.toList());
List listB = IntStream.range(10, 20).boxed().collect(Collectors.toList());
List listC = DoubleStream.generate(() -> { return new Random().nextDouble(); }).limit(10).boxed().collect(Collectors.toList());
LinkedList listD = Stream.iterate(0, x -> x++).limit(10).collect(Collectors.toCollection(LinkedList::new));
Comentarii (0)

Următoarele sunt câteva moduri în care puteți crea liste.

  • Acest lucru va crea o listă cu dimensiune fixă, adăugarea/eliminarea elemente nu este posibil, se va arunca o java.lang.UnsupportedOperationException dacă încerci să faci așa.

Listă fixedSizeList = Matrice.asList(new String[] {"Masculin", "Feminin"});


  • Următoarea versiune este o simplă listă în care puteți adăuga/elimina orice număr de elemente.

Listă list = new ArrayList<>();


  • Acesta este modul de a crea o LinkedList în java, Dacă aveți nevoie pentru a face frecvente de inserare/stergere de elemente de pe lista, ar trebui să utilizațiLinkedList "în loc de" ArrayList`

Listă linkedList = new LinkedList<>();

Comentarii (1)