java list how create
Acest tutorial pentru lista Java explică modul de creare, inițializare și tipărire a listelor în Java. Tutorialul explică, de asemenea, lista listelor cu exemplu complet de cod:
Acest tutorial vă va prezenta structura de date „listă”, care este una dintre structurile de bază din interfața Java Collection.
O listă în Java este o secvență de elemente conform unei ordini. Interfața List a pachetului java.util este cea care implementează această secvență de obiecte ordonate într-un mod particular numit List.
=> Verificați TOATE Tutorialele Java aici.
La fel ca matricele, elementele listei pot fi accesate și folosind indici cu primul index începând de la 0. Indicele indică un anumit element la indexul „i”, adică se află la o distanță de la începutul listei.
Unele dintre caracteristicile listei în Java includ:
- Listele pot avea elemente duplicat.
- Lista poate avea, de asemenea, elemente „nule”.
- Listele acceptă generice, adică puteți avea liste generice.
- De asemenea, puteți avea obiecte mixte (obiecte din clase diferite) în aceeași listă.
- Listele păstrează întotdeauna ordinea de inserare și permit accesul pozițional.
Ce veți învăța:
- Listă în Java
- Concluzie
Listă în Java
Interfața Java List este un subtip al interfeței Java Collection. Aceasta este interfața standard care moștenește interfața de colecție Java.
Mai jos este prezentată o diagramă de clasă a interfeței Java List.
Așa cum se arată în diagrama de clasă de mai sus, interfața listei Java se extinde din interfața Colecție a pachetului java.util care, la rândul său, se extinde din interfața Iterabilă a pachetului java.util. Clasa AbstractList oferă implementarea scheletică a interfeței List.
Clasele LinkedList, Stack, Vector, ArrayList și CopyOnWriteArrayList sunt toate clasele de implementare ale interfeței List care sunt frecvent utilizate de programatori. Astfel, există patru tipuri de liste în Java, adică Stack, LinkedList, ArrayList și Vector.
Prin urmare, atunci când trebuie să implementați Interfața listei, puteți implementa oricare dintre clasele de tip listă de mai sus, în funcție de cerințe. Pentru a include funcționalitatea interfeței listei în programul dvs., va trebui importați pachetul java.util. * care conține interfața listei și alte definiții ale claselor după cum urmează:
import java.util.*;
Creați și declarați o listă
Am afirmat deja că List este o interfață și este implementat de clase precum ArrayList, Stack, Vector și LinkedList. De aceea poți declarați și creați instanțe ale listei în oricare dintre următoarele moduri:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
După cum se arată mai sus, puteți crea o listă cu oricare dintre clasele de mai sus și apoi inițializa aceste liste cu valori. Din afirmațiile de mai sus, puteți constata că ordinea elementelor se va schimba în funcție de clasa utilizată pentru crearea unei instanțe a listei.
De exemplu, pentru o listă cu clasa stack, comanda este Last In, First Out (LIFO).
Inițializați lista Java
Puteți utiliza oricare dintre metodele date mai jos pentru a inițializa un obiect de listă.
# 1) Folosind metoda asList
Metoda asList () este deja tratată în detaliu în subiectul Arrays. Puteți crea o listă imuabilă folosind valorile matricei.
Sintaxa generală este:
List listname = Arrays.asList(array_name);
Aici, data_type ar trebui să se potrivească cu cea a matricei.
Afirmația de mai sus creează o listă imuabilă. Dacă doriți ca lista să fie modificabilă, atunci trebuie să creați o instanță a listei folosind nou și apoi să îi atribuiți elementele matricei folosind metoda asList.
Aceasta este așa cum se arată mai jos:
List listname = new ArrayList (Arrays.asList(array_name));
Haideți implementați un program în Java care arată crearea și inițializarea listei folosind metoda asList .
cel mai bun optimizator de sistem pentru Windows 10
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 + ' '); } }
Ieșire:
În programul de mai sus, am creat mai întâi lista imuabilă folosind metoda asList. Apoi, creăm o listă modificabilă prin crearea unei instanțe de ArrayList și apoi inițializarea acestei ArrayList cu valori din matrice folosind metoda asList.
Rețineți că, deoarece a doua listă este modificabilă, putem adăuga și mai multe valori.
# 2) Utilizarea List.add ()
După cum sa menționat deja, întrucât lista este doar o interfață, ea nu poate fi instanțiată. Dar putem instanția clase care implementează această interfață. Prin urmare, pentru a inițializa clasele de listă, puteți utiliza metodele lor de adăugare respective, care este o metodă de interfață a listei, dar implementată de fiecare dintre clase.
daca tu creați o listă de clase conectate după cum urmează:
List llist = new LinkedList ();
Apoi, pentru a adăuga un element la o listă, puteți utiliza metoda add după cum urmează:
llist.add(3);
Există, de asemenea, o tehnică numită „Inițializare dublă bretele” în care lista este instanțiată și inițializată apelând metoda add în aceeași declarație.
Acest lucru se face așa cum se arată mai jos:
List llist = new LinkedList (){{ add(1); add(3);}};
Afirmația de mai sus adaugă elementele 1 și 3 la listă.
Următorul program arată inițializări ale listei folosind metoda add . De asemenea, folosește tehnica de inițializare a acoladei duble.
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()); } }
Ieșire:
Acest program are trei declarații de listă diferite, adică ArrayList, LinkedList și Stack.
Obiectele ArrayList și LinkedList sunt instanțiate și apoi sunt apelate metodele de adăugare pentru a adăuga elemente la aceste obiecte. Pentru stivă, se utilizează inițializarea dublă acoladă în care se apelează metoda add în timpul instanțării în sine.
# 3) Utilizarea metodelor clasei de colecții
Clasa de colecții Java are diverse metode care pot fi utilizate pentru a inițializa lista.
Unele dintre metode sunt:
- adaugă totul
sintaxa generală pentru colecțiile metoda addAll este:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Aici, adăugați valori la o listă goală. Metoda addAll ia lista ca primul parametru urmat de valorile care trebuie inserate în listă.
- listă nemodificabilă ()
Metoda ‘unmodifiableList ()’ returnează o listă imuabilă la care elementele nu pot fi adăugate și nici șterse.
Sintaxa generală a acestei metode este următoarea:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metoda ia valorile listei ca parametri și returnează o listă. Dacă încercați să adăugați sau să ștergeți orice element din această listă, atunci compilatorul aruncă o excepție UnsupportedOperationException.
- singletonList ()
Metoda ‘singletonList’ returnează o listă cu un singur element în ea. Lista este imuabilă.
Sintaxa generală pentru această metodă este:
List listname = Collections.singletonList(value);
Următorul program Java demonstrează toate cele trei metode ale clasei Colecții discutată mai sus.
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()); } }
Ieșire:
# 4) Utilizarea fluxurilor Java8
Odată cu introducerea fluxurilor în Java 8, puteți, de asemenea, să construiți un flux de date și să le colectați într-o listă.
Următoarele programul arată crearea unei liste folosind fluxul.
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()); } }
Ieșire:
Programul de mai sus colectează fluxul de șiruri într-o listă și îl returnează. De asemenea, puteți utiliza celelalte metode de colecționare precum „toCollection”, „unmodifiableList” etc., în afară de asList în funcția de colectare.
# 5) Metoda Java 9 List.of ()
O nouă metodă este introdusă în Java 9, List.of (), care ia orice număr de elemente și construiește o listă. Lista construită este imuabilă.
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()); } }
Ieșire:
Exemplu de listă
Mai jos este un exemplu complet de utilizare a unei interfețe de listă și a diferitelor sale metode.
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); } }
Ieșire:
Ieșirea programului de mai sus arată diferitele operații efectuate pe un ArrayList. În primul rând, creează și inițializează lista. Apoi copiază conținutul unei alte liste în această listă și, de asemenea, elimină un element din listă. În cele din urmă, înlocuiește ultimul element din listă cu o altă valoare.
Vom explora detaliat metodele listei în următorul nostru tutorial.
Tipărirea listei
Există diverse metode prin care puteți imprima elementele listei în Java.
Să discutăm câteva dintre metodele de aici.
# 1) Utilizarea pentru buclă / Îmbunătățită pentru buclă
Lista este o colecție ordonată care poate fi accesată folosind indici. Puteți utiliza bucla utilizată pentru a itera folosind indicii pentru a imprima fiecare element al listei.
Java are o altă versiune de buclă for, cunoscută ca îmbunătățită pentru buclă, care poate fi folosită și pentru accesarea și tipărirea fiecărui element al listei.
Programul Java prezentat mai jos demonstrează tipărirea conținutului listei folosind bucla pentru și îmbunătățită pentru bucla.
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 Ieșire:
# 2) Utilizarea metodei toString
Metoda „toString ()” a interfeței listei returnează reprezentarea șirului listei.
Programul de mai jos demonstrează utilizarea metodei toString ().
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()); } }
Ieșire:
Lista convertită într-o matrice
Lista are o metodă toArray () care convertește lista într-o matrice. Odată convertit într-o matrice, puteți utiliza metodele matrice discutate în subiectul respectiv pentru a imprima conținutul acestei matrice. Puteți folosi pentru sau îmbunătățit pentru buclă sau chiar toString metoda.
Exemplul dat mai jos folosește metoda toString pentru a imprima conținutul matricei.
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())); } }
Ieșire:
Utilizarea fluxurilor Java 8
Fluxurile sunt introduse în Java 8. Puteți utiliza fluxurile pentru a parcurge lista. Există, de asemenea, lambdas pe care le puteți itera prin listă.
Programul de mai jos arată utilizarea fluxurilor pentru a itera prin listă și pentru a afișa conținutul acesteia.
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 + ' ')); } }
Ieșire:
În afară de metodele discutate mai sus, puteți utiliza iteratorii listelor pentru a itera prin listă și pentru a afișa conținutul acesteia. Vom avea un articol complet pe iteratorul listei în tutorialele ulterioare.
Lista listelor
Interfața listei Java acceptă „lista listelor”. În aceasta, elementele individuale ale listei sunt din nou o listă. Aceasta înseamnă că puteți avea o listă într-o altă listă.
Acest concept este foarte util atunci când trebuie să citiți date din fișierele CSV. Aici, poate fi necesar să citiți mai multe liste sau liste din liste și apoi să le stocați în memorie. Din nou va trebui să procesați aceste date și să scrieți înapoi în fișier. Astfel, în astfel de situații, puteți menține o listă de liste pentru a simplifica prelucrarea datelor.
Următorul program Java demonstrează un exemplu de listă de liste Java.
În acest program, avem o listă de liste de tip String. Creăm două liste separate de șiruri de tip și atribuim valori acestor liste. Ambele liste sunt adăugate la lista listelor folosind metoda add.
Pentru a afișa conținutul listei de liste, folosim două bucle. Bucla exterioară (foreach) iterează prin listele listelor care accesează listele. Bucla foreach interioară accesează elementele de șir individuale ale fiecăreia dintre aceste liste.
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 }); } }
Ieșire:
Lista de liste Java este un concept mic, dar este importantă mai ales atunci când trebuie să citiți date complexe în programul dvs.
întrebări frecvente
Q # 1) Ce este o listă și setată în Java?
adăugarea de elemente într-o matrice java
Răspuns: O listă este o colecție ordonată de elemente. Puteți avea elemente duplicate în listă.
Un set nu este o colecție comandată. Elementele din set nu sunt aranjate într-o ordine specială. De asemenea, elementele din set trebuie să fie unice. Nu permite duplicate.
Q # 2) Cum funcționează o listă în Java?
Răspuns: Lista este o interfață în Java care se extinde de la interfața Colecție. Clasele ArrayList, LinkedList, Stack și Vector implementează interfața listei. Astfel, un programator poate folosi aceste clase pentru a utiliza funcționalitatea interfeței listei.
Î. # 3) Ce este un ArrayList în Java?
Răspuns: ArrayList este o matrice dinamică. Este o colecție redimensionabilă de elemente și implementează interfața listei. ArrayList utilizează intern o matrice pentru a stoca elementele.
Q # 4) Listele încep de la 0 sau 1 în Java?
Răspuns: Listele din Java au un index întreg bazat pe zero. Aceasta înseamnă că primul element din listă se află la indexul 0, al doilea element la indexul 1 și așa mai departe.
Q # 5) Lista este comandată?
Răspuns: Da. Lista este o colecție ordonată de elemente. Această ordine este păstrată, în timpul inserării unui nou element în listă,
Concluzie
Acest tutorial a oferit o introducere a interfeței listei în Java. De asemenea, am discutat despre conceptele majore ale listelor precum crearea, inițializarea listelor, tipărirea listelor etc.
În tutorialele noastre viitoare, vom discuta despre diferitele metode furnizate de interfața listei. De asemenea, vom discuta despre construirea iteratorului care este utilizată pentru a itera obiectul listei. Vom discuta despre conversia obiectelor listei în alte structuri de date în viitorul nostru tutorial.
=> Vizitați aici pentru a vedea seria de antrenament Java pentru toți.
Lectură recomandată
- Java Array - Declarați, creați și inițializați o matrice în Java
- Matrice de obiecte în Java: Cum se creează, se inițializează și se utilizează
- Java Hello World - Creați-vă primul program în Java astăzi
- Implementarea Java: crearea și executarea fișierului Java JAR
- Mașină virtuală Java: Cum ajută JVM la rularea aplicației Java
- Modificatori de acces în Java - Tutorial cu exemple
- Tutorial de reflecție Java cu exemple
- Introducere în limbajul de programare Java - Video Tutorial