java list how create
Tento výukový program pre zoznam Java vysvetľuje, ako vytvárať, inicializovať a tlačiť zoznamy v Jave. V tomto výučbe sa vysvetľuje aj zoznam zoznamov s príkladom kompletného kódu:
Tento tutoriál vám predstaví dátovú štruktúru „list“, ktorá je jednou zo základných štruktúr v rozhraní Java Collection.
Zoznam v Jave je postupnosť prvkov podľa poradia. Rozhranie Zoznam balíka java.util implementuje túto postupnosť objektov usporiadaných osobitným spôsobom, ktorý sa nazýva Zoznam.
=> Skontrolujte VŠETKY návody Java tu.
Rovnako ako polia, aj k prvkom zoznamu je možné pristupovať pomocou indexov, ktorých prvý index začína na 0. Index označuje konkrétny prvok v indexe „i“, t. J. Ide o prvky i od začiatku zoznamu.
Niektoré z charakteristík zoznamu v prostredí Java zahŕňajú:
- Zoznamy môžu obsahovať duplicitné prvky.
- Zoznam môže obsahovať aj prvky „null“.
- Zoznamy podporujú všeobecné informácie, t. J. Môžete mať všeobecné zoznamy.
- V rovnakom zozname môžete mať aj zmiešané objekty (objekty rôznych tried).
- Zoznamy vždy zachovávajú poradie vloženia a umožňujú pozičný prístup.
Čo sa dozviete:
- Zoznam v jazyku Java
- Záver
Zoznam v jazyku Java
Rozhranie Java List je podtypom rozhrania Java Collection. Toto je štandardné rozhranie, ktoré dedí rozhranie Java Collection.
Ďalej je uvedený diagram tried rozhrania Java List.
Ako je zrejmé z vyššie uvedeného diagramu tried, rozhranie zoznamu Java sa rozširuje z rozhrania Collection balíka java.util, ktoré zasa z Iterovateľného rozhrania balíka java.util. Trieda AbstractList poskytuje skeletálnu implementáciu rozhrania List.
Triedy LinkedList, Stack, Vector, ArrayList a CopyOnWriteArrayList sú všetky implementačné triedy rozhrania List, ktoré programátori často používajú. V Jave teda existujú štyri typy zoznamov, tj. Stack, LinkedList, ArrayList a Vector.
Preto, keď musíte implementovať zoznamové rozhranie, môžete podľa požiadaviek implementovať ktorúkoľvek z vyššie uvedených typov typov zoznamov. Ak chcete do svojho programu zahrnúť funkčnosť rozhrania zoznamu, budete musieť importujte balíček java.util. *, ktorý obsahuje zoznamové rozhranie a ďalšie definície tried, nasledovne:
import java.util.*;
Vytvoriť a deklarovať zoznam
Už sme uviedli, že List je rozhranie a implementujú ho triedy ako ArrayList, Stack, Vector a LinkedList. Preto môžete deklarovať a vytvárať inštancie zoznamu jedným z nasledujúcich spôsobov:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Ako je uvedené vyššie, môžete vytvoriť zoznam s ktoroukoľvek z vyššie uvedených tried a potom tieto zoznamy inicializovať hodnotami. Z vyššie uvedených príkazov môžete zistiť, že poradie prvkov sa bude meniť v závislosti od triedy použitej na vytvorenie inštancie zoznamu.
Napríklad, pre zoznam s triedou zásobníkov je poradie Last In, First Out (LIFO).
Inicializovať zoznam Java
Na inicializáciu objektu zoznamu môžete použiť ktorúkoľvek z metód uvedených nižšie.
# 1) Použitie metódy asList
Metóde asList () sa už podrobne venujeme v téme Polia. Pomocou hodnôt poľa môžete vytvoriť nemenný zoznam.
Všeobecná syntax je:
List listname = Arrays.asList(array_name);
Tu by sa mal údajový_typ zhodovať s údajom poľa.
Vyššie uvedené vyhlásenie vytvára nemenný zoznam. Ak chcete, aby bol zoznam zmeniteľný, musíte vytvoriť inštanciu zoznamu pomocou nového a potom mu priradiť prvky poľa pomocou metódy asList.
Toto je uvedené nižšie:
List listname = new ArrayList (Arrays.asList(array_name));
Poďme implementovať program v Jave, ktorý zobrazuje vytvorenie a inicializáciu zoznamu pomocou metódy asList .
aké odlišné je c od 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 + ' '); } }
Výkon:
Vo vyššie uvedenom programe sme nemenný zoznam vytvorili najskôr pomocou metódy asList. Potom vytvoríme premenlivý zoznam tak, že vytvoríme inštanciu ArrayList a potom inicializujeme tento ArrayList hodnotami z poľa pomocou metódy asList.
Všimnite si, že keďže je druhý zoznam premenlivý, môžeme mu pridať aj ďalšie hodnoty.
# 2) Používanie List.add ()
Ako už bolo spomenuté, keďže zoznam je iba rozhraním, nemožno ho vytvoriť inštanciou. Ale môžeme vytvoriť inštancie tried, ktoré implementujú toto rozhranie. Preto na inicializáciu tried zoznamov môžete použiť ich príslušné metódy pridania, čo je metóda rozhrania zoznamu, ale implementovaná každou z tried.
Ak ty vytvorte inštanciu triedy prepojeného zoznamu, ako je uvedené nižšie:
List llist = new LinkedList ();
Potom na pridanie prvku do zoznamu môžete použiť metódu pridania nasledujúcim spôsobom:
llist.add(3);
Existuje tiež technika s názvom „Double brace initialization“, v ktorej je zoznam inštancovaný a inicializovaný volaním metódy add v rovnakom príkaze.
To sa deje tak, ako je uvedené nižšie:
List llist = new LinkedList (){{ add(1); add(3);}};
Vyššie uvedené vyhlásenie pridá do zoznamu prvky 1 a 3.
Nasledujúci program zobrazuje inicializácie zoznamu pomocou metódy pridania . Používa tiež techniku inicializácie dvojitého zloženého zátvorku.
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()); } }
Výkon:
Tento program má tri rôzne deklarácie zoznamu, tj. ArrayList, LinkedList a Stack.
Objekty ArrayList a LinkedList sú inštancované a potom sú vyvolané metódy pridania na pridanie prvkov k týmto objektom. Pre zásobník sa používa inicializácia dvojitých zátvoriek, pri ktorej sa metóda add volá počas samotnej inštancie.
# 3) Používanie metód triedy Collection
Trieda zbierok Java má rôzne metódy, ktoré možno použiť na inicializáciu zoznamu.
Niektoré z týchto metód sú:
- pridať všetko
The všeobecná syntax pre kolekcie addAll metóda je:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Tu pridáte hodnoty do prázdneho zoznamu. Metóda addAll berie zoznam ako prvý parameter, za ktorým nasledujú hodnoty, ktoré sa majú do zoznamu vložiť.
- unmodifiableList ()
Metóda „unmodifiableList ()“ vráti nezmeniteľný zoznam, do ktorého nemožno pridať alebo vymazať prvky.
Všeobecná syntax tejto metódy je nasledovná:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metóda vezme hodnoty zoznamu ako parametre a vráti zoznam. Ak sa vôbec pokúsite pridať alebo odstrániť akýkoľvek prvok z tohto zoznamu, potom kompilátor vyvolá výnimku UnsupportedOperationException.
- singletonList ()
Metóda „singletonList“ vráti zoznam, v ktorom je jeden prvok. Zoznam je nemenný.
Všeobecná syntax pre túto metódu je:
List listname = Collections.singletonList(value);
Nasledujúci program Java demonštruje všetky tri metódy triedy Collections diskutované vyššie.
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()); } }
Výkon:
# 4) Používanie streamov Java8
Po zavedení prúdov v prostredí Java 8 môžete tiež vytvoriť prúd údajov a zhromaždiť ich v zozname.
Nasledujúci program ukazuje vytvorenie zoznamu pomocou streamu.
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()); } }
Výkon:
Vyššie uvedený program zhromaždí prúd reťazca do zoznamu a vráti ho. Môžete tiež použiť iné metódy Collectors, ako napríklad „toCollection“, „unmodifiableList“ atď., Okrem funkcie asList vo funkcii collect.
# 5) Metóda Java 9 List.of ()
V Jave 9 je zavedená nová metóda List.of (), ktorá zaberá ľubovoľný počet prvkov a vytvára zoznam. Vytvorený zoznam je nemenný.
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()); } }
Výkon:
Uveďte príklad
Ďalej je uvedený úplný príklad použitia rozhrania zoznamu a jeho rôznych metód.
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); } }
Výkon:
Vyššie uvedený programový výstup ukazuje rôzne operácie vykonávané na ArrayList. Najskôr vytvorí a inicializuje zoznam. Potom skopíruje obsah iného zoznamu do tohto zoznamu a tiež odstráni prvok zo zoznamu. Nakoniec nahradí posledný prvok v zozname inou hodnotou.
Metódy zoznamu podrobne preskúmame v našom ďalšom návode.
Zoznam tlače
Existuje mnoho metód, pomocou ktorých môžete tlačiť prvky zoznamu v prostredí Java.
Poďme si tu predstaviť niektoré z metód.
# 1) Použitie pre slučku / Vylepšené pre slučku
Zoznam je usporiadanou zbierkou, ku ktorej je možné získať prístup pomocou indexov. Môžete použiť cyklus, ktorý sa používa na iteráciu pomocou indexov na tlač každého prvku zoznamu.
Java má inú verziu cyklu for, ktorú pozná ako vylepšenú pre cyklus loop a ktorú je možné použiť aj na prístup a tlač každého prvku zoznamu.
Program Java uvedený nižšie ukazuje tlač obsahu zoznamu pomocou cyklu for a vylepšeného cyklu for.
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 Výkon:
# 2) Použitie metódy toString
Metóda „toString ()“ rozhrania zoznamu vráti reťazcovú reprezentáciu zoznamu.
Program uvedený nižšie demonštruje použitie metódy 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()); } }
Výkon:
ako otvoriť súbor jar v systéme Windows 10
Zoznam prevedený na pole
Zoznam má metódu toArray (), ktorá prevádza zoznam na pole. Po prevedení na pole môžete na vytlačenie obsahu tohto poľa použiť metódy poľa, ktoré sú popísané v príslušnej téme. Môžete použiť buď pre alebo vylepšenú pre slučku alebo dokonca metódu toString.
Nasledujúci príklad používa na tlač obsahu poľa metódu toString.
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())); } }
Výkon:
Používanie streamov Java 8
Prúdy sú zavedené v prostredí Java 8. V zozname môžete prehľadávať prúdy. Existujú aj lambdy, pomocou ktorých môžete zoznam iterovať.
Zobrazí sa nasledujúci program použitie streamov na iteráciu zoznamom a zobrazenie jeho obsahu.
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 + ' ')); } }
Výkon:
Okrem vyššie diskutovaných metód môžete na iteráciu zoznamu a zobrazenie jeho obsahu použiť iterátory zoznamu. V nasledujúcich výučbách budeme mať celý článok o iterátore zoznamov.
Zoznam zoznamov
Rozhranie zoznamu Java podporuje „zoznam zoznamov“. V tomto sú jednotlivé prvky zoznamu opäť zoznamom. To znamená, že môžete mať zoznam v inom zozname.
Tento koncept je veľmi užitočný, keď musíte čítať údaje napríklad zo súborov CSV. Možno tu budete musieť prečítať viac zoznamov alebo zoznamov vo vnútri zoznamov a potom ich uložiť do pamäte. Opäť budete musieť tieto údaje spracovať a zapísať späť do súboru. V takýchto situáciách môžete pre uľahčenie spracovania údajov udržiavať zoznam zoznamov.
Nasledujúci program Java demonštruje príklad zoznamu zoznamov Java.
V tomto programe máme zoznam zoznamov typu String. Vytvoríme dva samostatné zoznamy typového reťazca a týmto zoznamom priradíme hodnoty. Oba tieto zoznamy sa pridávajú do zoznamu zoznamov pomocou metódy pridania.
Na zobrazenie obsahu zoznamu zoznamov používame dve slučky. Vonkajšia slučka (foreach) prechádza zoznamami zoznamov, ktoré k nim pristupujú. Vnútorná slučka foreach pristupuje k jednotlivým reťazcovým prvkom každého z týchto zoznamov.
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 }); } }
Výkon:
Zoznam zoznamov Java je malý koncept, ale je dôležitý najmä vtedy, keď musíte vo svojom programe čítať komplexné údaje.
často kladené otázky
Otázka 1) Čo je to zoznam a nastavený v Jave?
Odpoveď: Zoznam je usporiadanou zbierkou prvkov. V zozname môžete mať duplicitné prvky.
Sada nie je objednanou zbierkou. Prvky v množine nie sú usporiadané v konkrétnom poradí. Prvky v množine musia byť tiež jedinečné. Nepovoľuje duplikáty.
Otázka 2) Ako funguje zoznam v prostredí Java?
Odpoveď: Zoznam je rozhranie v jazyku Java, ktoré sa rozprestiera od rozhrania Collection. Rozhranie zoznamu implementujú triedy ArrayList, LinkedList, Stack a Vector. Programátor teda môže pomocou týchto tried využívať funkcie rozhrania zoznamu.
Otázka 3) Čo je to ArrayList v Jave?
Odpoveď: ArrayList je dynamické pole. Jedná sa o zmeniteľnú kolekciu prvkov a implementuje rozhranie zoznamu. ArrayList interne využíva pole na ukladanie prvkov.
Otázka č. 4) Začínajú sa zoznamy v Jave od 0 alebo 1?
Odpoveď: Zoznamy v Jave majú celočíselný index založený na nule. To znamená, že prvý prvok v zozname je na indexe 0, druhý prvok na indexe 1 atď.
Otázka č. 5) Je zoznam objednaný?
Odpoveď: Áno. Zoznam je usporiadanou zbierkou prvkov. Toto poradie sa zachová počas vkladania nového prvku do zoznamu,
Záver
Tento výukový program predstavil úvod do rozhrania zoznamu v jazyku Java. Diskutovali sme tiež o hlavných konceptoch zoznamov, ako je vytváranie, inicializácia zoznamov, tlač zoznamov atď.
V našich pripravovaných tutoriáloch sa budeme zaoberať rôznymi metódami, ktoré poskytuje rozhranie zoznamu. Budeme tiež diskutovať o konštrukcii iterátora, ktorá sa používa na iteráciu objektu zoznamu. V našom pripravovanom výučbe sa budeme zaoberať konverziou objektov zoznamu na iné dátové štruktúry.
=> Navštívte tu a pozrite si sériu školení Java pre všetkých.
Odporúčané čítanie
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Pole objektov v Jave: Ako vytvárať, inicializovať a používať
- Java Hello World - vytvorte si prvý program v prostredí Java ešte dnes
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR
- Virtuálny stroj Java: Ako JVM pomáha pri spúšťaní aplikácií Java
- Modifikátory prístupu v prostredí Java - návod s príkladmi
- Výukový program Java Reflection s príkladmi
- Úvod do programovacieho jazyka Java - videonávod