java list how create
Tento výukový program Seznam Java vysvětluje, jak vytvářet, inicializovat a tisknout seznamy v Javě. Výukový program také vysvětluje seznam seznamů s příkladem úplného kódu:
Tento výukový program vás seznámí s „seznamem“ datové struktury, který je jednou ze základních struktur v rozhraní kolekce Java.
Seznam v Javě je sekvence prvků podle pořadí. Rozhraní seznamu balíčku java.util implementuje tuto posloupnost objektů seřazených určitým způsobem zvaným List.
=> Zkontrolujte VŠECHNY výukové programy Java zde.
Stejně jako pole lze k prvkům seznamu přistupovat také pomocí indexů s prvním indexem začínajícím na 0. Index označuje konkrétní prvek v indexu „i“, tj. Je to i prvky od začátku seznamu.
Mezi vlastnosti seznamu v Javě patří:
- Seznamy mohou obsahovat duplicitní prvky.
- Seznam může také obsahovat prvky „null“.
- Seznamy podporují generika, tj. Můžete mít obecné seznamy.
- Ve stejném seznamu můžete mít také smíšené objekty (objekty různých tříd).
- Seznamy vždy zachovávají pořadí vložení a umožňují poziční přístup.
Co se naučíte:
- Seznam v Javě
- Závěr
Seznam v Javě
Rozhraní Java List je podtypem rozhraní Java Collection. Toto je standardní rozhraní, které zdědí rozhraní kolekce Java.
Níže je uveden diagram tříd rozhraní Java List.

Jak je znázorněno ve výše uvedeném diagramu tříd, rozhraní seznamu Java se rozšiřuje z rozhraní Collection balíčku java.util, které se zase rozšiřuje z Iterable rozhraní balíčku java.util. Třída AbstractList poskytuje základní implementaci rozhraní List.
Třídy LinkedList, Stack, Vector, ArrayList a CopyOnWriteArrayList jsou všechny třídy implementace rozhraní List, které programátoři často používají. V Javě tedy existují čtyři typy seznamů, tj. Stack, LinkedList, ArrayList a Vector.
Proto, když musíte implementovat rozhraní seznamu, můžete implementovat libovolnou z výše uvedené třídy typu seznamu v závislosti na požadavcích. Chcete-li do svého programu zahrnout funkčnost rozhraní seznamu, budete muset importujte balíček java.util. *, který obsahuje rozhraní seznamu a další definice tříd následovně:
import java.util.*;
Vytvořit a deklarovat seznam
Již jsme uvedli, že List je rozhraní a je implementováno třídami jako ArrayList, Stack, Vector a LinkedList. Proto můžete deklarovat a vytvořit instance seznamu některým z následujících způsobů:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Jak je uvedeno výše, můžete vytvořit seznam s libovolnou z výše uvedených tříd a poté tyto seznamy inicializovat hodnotami. Z výše uvedených příkazů můžete zjistit, že pořadí prvků se bude měnit v závislosti na třídě použité pro vytvoření instance seznamu.
Například, pro seznam s třídou zásobníku je pořadí Last In, First Out (LIFO).
Inicializovat seznam Java
K inicializaci objektu seznamu můžete použít kteroukoli z níže uvedených metod.
# 1) Použití metody asList
Metoda asList () je již podrobně popsána v tématu Pole. Pomocí hodnot pole můžete vytvořit neměnný seznam.
Obecná syntaxe je:
List listname = Arrays.asList(array_name);
Zde by se datový typ měl shodovat s datem pole.
Výše uvedený příkaz vytváří neměnný seznam. Pokud chcete, aby byl seznam proměnlivý, musíte vytvořit instanci seznamu pomocí new a poté k ní přiřadit prvky pole pomocí metody asList.
Toto je uvedeno níže:
List listname = new ArrayList (Arrays.asList(array_name));
Pojďme implementovat program v Javě, který ukazuje vytvoření a inicializaci seznamu pomocí metody asList .
implementace hash tabulky v kódu 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ýstup:
Ve výše uvedeném programu jsme vytvořili neměnný seznam nejprve pomocí metody asList. Potom vytvoříme proměnlivý seznam vytvořením instance ArrayList a poté inicializujeme tento ArrayList hodnotami z pole pomocí metody asList.
Jelikož je druhý seznam proměnlivý, můžeme do něj přidat také další hodnoty.
# 2) Použití List.add ()
Jak již bylo zmíněno, protože seznam je pouze rozhraní, nelze jej vytvořit instanci. Ale můžeme vytvořit instanci tříd, které implementují toto rozhraní. Proto k inicializaci tříd seznamu můžete použít jejich příslušné metody přidání, což je metoda rozhraní seznamu, ale implementovaná každou z tříd.
jestli ty vytvořit instanci propojené třídy seznamu, jak je uvedeno níže:
List llist = new LinkedList ();
Chcete-li přidat prvek do seznamu, můžete použít metodu přidání následovně:
llist.add(3);
Existuje také technika zvaná „Inicializace dvojité složené závorky“, při které je seznam vytvořen a inicializován voláním metody add ve stejném příkazu.
To se provádí, jak je znázorněno níže:
List llist = new LinkedList (){{ add(1); add(3);}};
Výše uvedený příkaz přidá do seznamu prvky 1 a 3.
Následující program ukazuje inicializace seznamu pomocí metody přidání . Používá také techniku inicializace dvojitého složeného závorky.
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ýstup:
Tento program má tři různá deklarace seznamu, tj. ArrayList, LinkedList a Stack.
Objekty ArrayList a LinkedList jsou instancovány a poté jsou volány metody přidání k přidání prvků k těmto objektům. Pro zásobník se používá inicializace dvojité složené závorky, ve které je metoda add volána během samotné instance.
# 3) Používání metod třídy Collection
Třída sbírky Java obsahuje různé metody, které lze použít k inicializaci seznamu.
Některé z těchto metod jsou:
- přidat vše
The obecná syntaxe pro sbírky addAll metoda je:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Zde přidáte hodnoty do prázdného seznamu. Metoda addAll přebírá seznam jako první parametr následovaný hodnotami, které mají být vloženy do seznamu.
- unmodifiableList ()
Metoda ‚unmodifiableList () 'vrací nezměnitelný seznam, do kterého nelze prvky přidávat ani mazat.
Obecná syntaxe této metody je následující:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Metoda vezme hodnoty seznamu jako parametry a vrátí seznam. Pokud se vůbec pokusíte přidat nebo odstranit libovolný prvek z tohoto seznamu, pak kompilátor vyvolá výjimku UnsupportedOperationException.
- singletonList ()
Metoda ‚singletonList 'vrací seznam s jediným prvkem. Seznam je neměnný.
Obecná syntaxe pro tuto metodu je:
List listname = Collections.singletonList(value);
Následující program Java demonstruje všechny tři metody třídy Collections diskutováno výše.
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ýstup:
# 4) Používání streamů Java8
Se zavedením streamů v prostředí Java 8 můžete také vytvořit proud dat a shromáždit je v seznamu.
Následující program ukazuje vytvoření seznamu pomocí 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ýstup:
Výše uvedený program shromáždí proud řetězce do seznamu a vrátí jej. Můžete také použít jiné metody Collectors jako ‚toCollection ',‚ unmodifiableList ‘atd. Kromě funkce asList ve funkci collect.
# 5) Metoda Java 9 List.of ()
V Javě 9 je zavedena nová metoda List.of (), která přebírá libovolný počet prvků a vytváří seznam. Vytvořený seznam je neměnný.
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ýstup:
Příklad seznamu
Níže je uveden úplný příklad použití rozhraní seznamu a jeho různých metod.
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ýstup:
Výše uvedený programový výstup ukazuje různé operace prováděné na ArrayList. Nejprve vytvoří a inicializuje seznam. Poté zkopíruje obsah jiného seznamu do tohoto seznamu a také odebere prvek ze seznamu. Nakonec nahradí poslední prvek v seznamu jinou hodnotou.
Metody seznamu podrobně prozkoumáme v našem dalším kurzu.
Tisk seznamu
Existuje mnoho metod, pomocí kterých můžete tisknout prvky seznamu v Javě.
Pojďme si zde promluvit o některých metodách.
# 1) Použití pro smyčku / Vylepšeno pro smyčku
Seznam je uspořádanou kolekcí, ke které lze přistupovat pomocí indexů. Můžete použít smyčku for, která se používá k iteraci pomocí indexů k tisku každého prvku seznamu.
Java má další verzi smyčky for, kterou zná jako vylepšenou pro smyčku, kterou lze také použít pro přístup a tisk každého prvku seznamu.
Níže uvedený program Java ukazuje tisk obsahu seznamu pomocí smyčky for a vylepšené pro smyčku.
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ýstup:

# 2) Použití metody toString
Metoda ‚toString () 'rozhraní seznamu vrací řetězcovou reprezentaci seznamu.
Níže uvedený program demonstruje použití metody 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ýstup:

Seznam převeden do pole
Seznam má metodu toArray (), která převádí seznam na pole. Po převodu na pole můžete použít metody pole popsané v příslušném tématu k tisku obsahu tohoto pole. Můžete použít buď pro nebo vylepšenou smyčku nebo dokonce metodu toString.
Níže uvedený příklad používá k tisku obsahu pole metodu 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ýstup:

Používání streamů Java 8
Proudy jsou zavedeny v prostředí Java 8. Seznamem můžete procházet proudy. Existují také lambda, pomocí kterých můžete iterovat seznamem.
co dělá double v Javě
Zobrazí se níže uvedený program využití streamů k iteraci seznamem a zobrazení 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ýstup:

Kromě výše popsaných metod můžete iterátory seznamu použít k iteraci seznamu a zobrazení jeho obsahu. V následujících výukách budeme mít kompletní článek o iterátoru seznamu.
Seznam seznamů
Rozhraní seznamu Java podporuje „seznam seznamů“. V tomto případě jsou jednotlivé prvky seznamu opět seznamem. To znamená, že můžete mít seznam uvnitř jiného seznamu.
Tento koncept je velmi užitečný, když musíte číst data ze souborů CSV. Zde možná budete muset přečíst více seznamů nebo seznamů uvnitř seznamů a poté je uložit do paměti. Opět budete muset tato data zpracovat a zapsat zpět do souboru. V takových situacích tedy můžete udržovat seznam seznamů, který zjednoduší zpracování dat.
Následující program Java ukazuje příklad seznamu seznamů Java.
V tomto programu máme seznam seznamů typu String. Vytvoříme dva samostatné seznamy řetězců typu a těmto seznamům přiřadíme hodnoty. Oba tyto seznamy jsou přidány do seznamu seznamů pomocí metody přidání.
Pro zobrazení obsahu seznamu seznamů používáme dvě smyčky. Vnější smyčka (foreach) iteruje seznamy seznamů přistupujících k seznamům. Vnitřní smyčka foreach přistupuje k jednotlivým řetězcovým prvkům každého z těchto seznamů.
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ýstup:

Seznam seznamů Java je malý koncept, ale je důležitý zejména v případě, že ve svém programu musíte číst složitá data.
Často kladené otázky
Otázka č. 1) Co je seznam a nastavený v Javě?
Odpovědět: Seznam je uspořádaná kolekce prvků. V seznamu můžete mít duplicitní prvky.
Sada není objednaná kolekce. Prvky v sadě nejsou uspořádány v žádném konkrétním pořadí. Také prvky v sadě musí být jedinečné. Nepovoluje duplikáty.
Otázka 2) Jak funguje seznam v Javě?
Odpovědět: Seznam je rozhraní v Javě, které sahá od rozhraní Collection. Třídy ArrayList, LinkedList, Stack a Vector implementují rozhraní seznamu. Programátor tedy může pomocí těchto tříd využívat funkce rozhraní seznamu.
Otázka č. 3) Co je to ArrayList v Javě?
Odpovědět: ArrayList je dynamické pole. Jedná se o měnitelnou kolekci prvků a implementuje rozhraní seznamu. ArrayList interně využívá pole k ukládání prvků.
Otázka č. 4) Začínají seznamy v Javě na 0 nebo 1?
Odpovědět: Seznamy v Javě mají celočíselný index založený na nule. To znamená, že první prvek v seznamu je na indexu 0, druhý prvek na indexu 1 atd.
Otázka č. 5) Je seznam objednán?
Odpovědět: Ano. Seznam je uspořádanou kolekcí prvků. Toto pořadí je zachováno, během vkládání nového prvku do seznamu,
Závěr
Tento výukový program představil rozhraní seznamu v Javě. Také jsme diskutovali o hlavních pojmech seznamů, jako je vytváření, inicializace seznamů, tisk seznamů atd.
V našich připravovaných tutoriálech probereme různé metody poskytované rozhraním seznamu. Budeme také diskutovat o konstrukci iterátoru, která se používá k iteraci objektu seznamu. V našem nadcházejícím výukovém programu probereme převod objektů seznamu na jiné datové struktury.
=> Navštivte zde a prohlédněte si sérii školení Java pro všechny.
Doporučené čtení
- Java Array - deklarovat, vytvořit a inicializovat pole v Javě
- Pole objektů v Javě: Jak vytvářet, inicializovat a používat
- Java Hello World - vytvořte si svůj první program v Javě ještě dnes
- Implementace Java: Vytvoření a spuštění souboru Java JAR
- Virtuální stroj Java: Jak JVM pomáhá při spouštění aplikace Java
- Modifikátory přístupu v Javě - výuka s příklady
- Výukový program Java Reflection s příklady
- Úvod do programovacího jazyka Java - výukový program