java list how create
Aquest tutorial sobre la llista de Java explica com crear, inicialitzar i imprimir llistes a Java. El tutorial també explica la llista de llistes amb un exemple de codi complet:
Aquest tutorial us presentarà l’estructura de dades ‘llista’ que és una de les estructures bàsiques de la interfície de col·lecció de Java.
Una llista a Java és una seqüència d'elements segons un ordre. La interfície List del paquet java.util és la que implementa aquesta seqüència d'objectes ordenats de manera particular anomenada List.
=> Consulteu TOTS els tutorials de Java aquí.
Igual que les matrius, també es pot accedir als elements de la llista mitjançant índexs amb el primer índex que comença a 0. L’índex indica un element concret a l’índex ‘i’, és a dir, es troba a uns quants elements del començament de la llista.
Algunes de les característiques de la llista a Java inclouen:
- Les llistes poden tenir elements duplicats.
- La llista també pot tenir elements 'nuls'.
- Les llistes són compatibles amb els genèrics, és a dir, podeu tenir llistes genèriques.
- També podeu tenir objectes barrejats (objectes de classes diferents) a la mateixa llista.
- Les llistes sempre conserven l'ordre d'inserció i permeten l'accés posicional.
Què aprendreu:
- Llista a Java
- Conclusió
Llista a Java
La interfície Java List és un subtipus de la interfície Java Collection. Aquesta és la interfície estàndard que hereta la interfície de col·lecció de Java.
A continuació es mostra un diagrama de classes de la interfície Java List.

Com es mostra al diagrama de classes anterior, la interfície de llista Java s’estén des de la interfície de col·lecció del paquet java.util que al seu torn s’estén des de la interfície iterable del paquet java.util. La classe AbstractList proporciona la implementació esquelètica de la interfície List.
Les classes LinkedList, Stack, Vector, ArrayList i CopyOnWriteArrayList són totes les classes d'implementació de la interfície List que són freqüentment utilitzades pels programadors. Per tant, hi ha quatre tipus de llistes a Java, és a dir, Stack, LinkedList, ArrayList i Vector.
Per tant, quan haureu d'implementar la interfície de llista, podeu implementar qualsevol de les classes de tipus de llista anteriors en funció dels requisits. Per incloure la funcionalitat de la interfície de llista al vostre programa, haureu de fer-ho importeu el paquet java.util. * que contingui la interfície de llista i altres definicions de classes de la següent manera:
import java.util.*;
Crea i declara una llista
Ja hem afirmat que List és una interfície i està implementat per classes com ArrayList, Stack, Vector i LinkedList. Per tant, podeu declarar i crear instàncies de la llista de qualsevol de les maneres següents:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Com es mostra més amunt, podeu crear una llista amb qualsevol de les classes anteriors i inicialitzar aquestes llistes amb valors. A partir de les afirmacions anteriors, podeu distingir que l’ordre dels elements canviarà en funció de la classe que s’utilitzi per crear una instància de la llista.
Per exemple, per a una llista amb classe de pila, l’ordre és Last In, First Out (LIFO).
Inicialitzeu la llista Java
Podeu fer ús de qualsevol dels mètodes indicats a continuació per inicialitzar un objecte de llista.
# 1) Utilització del mètode asList
El mètode asList () ja es tracta detalladament al tema Arrays. Podeu crear una llista immutable mitjançant els valors de la matriu.
La sintaxi general és:
List listname = Arrays.asList(array_name);
Aquí, el tipus_dades ha de coincidir amb el de la matriu.
La declaració anterior crea una llista immutable. Si voleu que la llista es pugui modificar, heu de crear una instància de la llista amb una nova i assignar-li els elements de la matriu mitjançant el mètode asList.
Això és el que es mostra a continuació:
List listname = new ArrayList (Arrays.asList(array_name));
Anem implementar un programa a Java que mostri la creació i inicialització de la llista mitjançant el mètode asList .
la diferència entre c i c ++
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
Sortida:
Al programa anterior, hem creat la llista immutable primer mitjançant el mètode asList. A continuació, creem una llista mutable creant una instància d'ArrayList i inicialitzant aquesta ArrayList amb valors de la matriu mitjançant el mètode asList.
Tingueu en compte que, com que la segona llista es pot modificar, també hi podem afegir més valors.
# 2) Ús de List.add ()
Com ja s'ha esmentat, com que la llista és només una interfície, no es pot crear una instància. Però podem instanciar classes que implementen aquesta interfície. Per tant, per inicialitzar les classes de llista, podeu utilitzar els seus mètodes additius respectius, que és un mètode d'interfície de llista però implementat per cadascuna de les classes.
Si tu instancieu una classe de llista enllaçada a continuació:
List llist = new LinkedList ();
A continuació, per afegir un element a una llista, podeu utilitzar el mètode add de la següent manera:
llist.add(3);
També hi ha una tècnica anomenada 'Inicialització de doble claus' en què la llista s'instancia i s'inicialitza cridant el mètode add en la mateixa sentència.
Això es fa com es mostra a continuació:
List llist = new LinkedList (){{ add(1); add(3);}};
L'afirmació anterior afegeix els elements 1 i 3 a la llista.
El programa següent mostra el fitxer inicialitzacions de la llista mitjançant el mètode add . També utilitza la tècnica d’inicialització de dobles claus.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
Sortida:
Aquest programa té tres declaracions de llista diferents, és a dir, ArrayList, LinkedList i Stack.
S’instancien objectes ArrayList i LinkedList i, a continuació, es crida als mètodes add per afegir elements a aquests objectes. Per a la pila, s’utilitza la inicialització de doble claus en la qual es crida al mètode add durant la pròpia instància.
# 3) Ús de mètodes de classe de col·leccions
La classe de col·leccions de Java té diversos mètodes que es poden utilitzar per inicialitzar la llista.
Alguns dels mètodes són:
- addAll
El La sintaxi general de les col·leccions addAll és:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Aquí, afegiu valors a una llista buida. El mètode addAll pren la llista com el primer paràmetre seguit dels valors que s’insereixen a la llista.
- unmodifiableList ()
El mètode ‘unmodifiableList ()’ retorna una llista immutable a la qual no es poden afegir ni suprimir els elements.
La sintaxi general d’aquest mètode és la següent:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
El mètode pren valors de llista com a paràmetres i retorna una llista. Si intenteu afegir o suprimir algun element d'aquesta llista, el compilador llança una excepció UnsupportedOperationException.
- singletonList ()
El mètode ‘singletonList’ retorna una llista amb un sol element. La llista és immutable.
La sintaxi general d’aquest mètode és:
List listname = Collections.singletonList(value);
El programa Java següent mostra els tres mètodes de la classe Collections comentat anteriorment.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
Sortida:
# 4) Ús de corrents Java8
Amb la introducció de fluxos a Java 8, també podeu construir un flux de dades i recollir-los en una llista.
El següent programa mostra la creació d’una llista mitjançant stream.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
Sortida:
El programa anterior recopila el flux de cadena en una llista i el retorna. També podeu utilitzar els altres mètodes de col·leccionisme, com ara 'toCollection', 'unmodifiableList', etc. a part de asList a la funció de recollida.
# 5) Mètode Java 9 List.of ()
S'introdueix un nou mètode a Java 9, List.of (), que pren qualsevol quantitat d'elements i construeix una llista. La llista construïda és immutable.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
Sortida:
Exemple de llista
A continuació es mostra un exemple complet d’utilitzar una interfície de llista i els seus diversos mètodes.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
Sortida:
La sortida del programa anterior mostra les diverses operacions realitzades en una ArrayList. En primer lloc, crea i inicialitza la llista. A continuació, copia el contingut d'una altra llista a aquesta llista i també elimina un element de la llista. Finalment, substitueix l’últim element de la llista per un altre valor.
Explorarem els mètodes de llista amb detall al nostre següent tutorial.
Llista d'impressió
Hi ha diversos mètodes amb els quals podeu imprimir els elements de la llista a Java.
Analitzem alguns dels mètodes aquí.
# 1) Ús per a bucle / Millorat per a bucle
La llista és una col·lecció ordenada a la qual es pot accedir mitjançant índexs. Podeu utilitzar el bucle que s'utilitza per iterar amb els índexs per imprimir cada element de la llista.
Java té una altra versió de for loop coneguda com a millorada per a bucle que també es pot utilitzar per accedir i imprimir cada element de la llista.
El programa Java que es mostra a continuació ho demostra la impressió de continguts de la llista mitjançant bucle i millorat per a bucle.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i Sortida:

# 2) Ús del mètode toString
El mètode 'toString ()' de la interfície de la llista retorna la representació de cadena de la llista.
El programa següent demostra l'ús del mètode toString ().
coses que podeu fer amb c ++
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
Sortida:

Llista convertida a matriu
La llista té un mètode toArray () que converteix la llista en una matriu. Un cop convertit a una matriu, podeu utilitzar els mètodes de matriu comentats al tema corresponent per imprimir el contingut d'aquesta matriu. Podeu utilitzar per o millorat per al mètode de bucle o fins i tot toString.
L’exemple que es mostra a continuació utilitza el mètode toString per imprimir el contingut de la matriu.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
Sortida:

Ús de corrents de Java 8
Els fluxos s’introdueixen a Java 8. Podeu fer servir fluxos per recórrer la llista. També hi ha lambdas que podeu recórrer a la llista.
El programa següent mostra l'ús de corrents per recórrer la llista i mostrar-ne el contingut.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
Sortida:

A part dels mètodes comentats anteriorment, podeu utilitzar iteradors de llistes per recórrer la llista i mostrar-ne el contingut. Tindrem un article complet a l’iterador de la llista en els següents tutorials.
Llista de llistes
La interfície de llista Java admet la 'llista de llistes'. En això, els elements individuals de la llista tornen a ser una llista. Això significa que podeu tenir una llista dins d’una altra llista.
Aquest concepte és molt útil quan heu de llegir dades dels fitxers CSV. Aquí és possible que hàgiu de llegir diverses llistes o llistes dins de llistes i després desar-les a la memòria. Una vegada més haurà de processar aquestes dades i tornar a escriure al fitxer. Així, en aquestes situacions, podeu mantenir una llista de llistes per simplificar el processament de dades.
El programa Java següent mostra un exemple de llista de llistes Java.
En aquest programa, tenim una llista de llistes de tipus String. Creem dues llistes separades de tipus string i assignem valors a aquestes llistes. Ambdues llistes s’afegeixen a la llista de llistes mitjançant el mètode add.
Per mostrar el contingut de la llista de llistes, fem servir dos bucles. El bucle exterior (foreach) itera a través de les llistes de llistes que accedeixen a les llistes. El bucle foreach intern accedeix als elements de cadena individuals de cadascuna d'aquestes llistes.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
Sortida:

La llista de llistes Java és un concepte petit, però és important sobretot quan heu de llegir dades complexes al vostre programa.
Preguntes freqüents
P # 1) Què és una llista i configurada a Java?
Resposta: Una llista és una col·lecció ordenada d’elements. Podeu tenir elements duplicats a la llista.
Un conjunt no és una col·lecció ordenada. Els elements del conjunt no s’ordenen en cap ordre concret. A més, els elements del conjunt han de ser únics. No permet duplicats.
Q # 2) Com funciona una llista a Java?
Resposta: La llista és una interfície a Java que s’estén des de la interfície de col·lecció. Les classes ArrayList, LinkedList, Stack i Vector implementen la interfície de llista. Així, un programador pot utilitzar aquestes classes per utilitzar la funcionalitat de la interfície de llista.
P # 3) Què és una ArrayList a Java?
Resposta: ArrayList és una matriu dinàmica. És una col·lecció redimensionable d’elements i implementa la interfície de la llista. ArrayList utilitza internament una matriu per emmagatzemar els elements.
Q # 4) Les llistes comencen per 0 o 1 a Java?
Resposta: Les llistes a Java tenen un índex enter basat en zero. Això significa que el primer element de la llista es troba a l’índex 0, el segon element a l’índex 1, etc.
P # 5) La llista està ordenada?
Resposta: Sí. La llista és una col·lecció ordenada d’elements. Aquest ordre es conserva, durant la inserció d'un element nou a la llista,
Conclusió
Aquest tutorial va donar una introducció a la interfície de la llista a Java. També vam discutir els principals conceptes de llistes com la creació, inicialització de llistes, impressió de llistes, etc.
En els nostres propers tutorials, parlarem dels diversos mètodes que proporciona la interfície de la llista. També parlarem de la construcció d'iterador que s'utilitza per iterar l'objecte de llista. Analitzarem la conversió d’objectes de llista a altres estructures de dades al proper tutorial.
=> Visiteu aquí per veure la sèrie d'entrenaments de Java per a tothom.
Lectura recomanada
- Matriu Java: declarar, crear i inicialitzar una matriu a Java
- Matriu d'objectes a Java: Com crear, inicialitzar i utilitzar
- Java Hello World: creeu avui el vostre primer programa a Java
- Desplegament de Java: creació i execució del fitxer JAR de Java
- Màquina virtual Java: com ajuda JVM a executar aplicacions Java
- Modificadors d'accés a Java: tutorial amb exemples
- Tutorial de reflexió de Java amb exemples
- Introducció al llenguatge de programació Java: vídeo tutorial