Ez a Java List Tutorial elmagyarázza, hogyan lehet létrehozni, inicializálni és nyomtatni listák Java. Az oktatóanyag a teljes Kódpéldával rendelkező listák listáját is ismerteti:
Ez az oktatóanyag bemutatja a “lista” adatszerkezetet, amely a Java Collection felület egyik alapvető struktúrája.
A Java-ban található lista az elemek sorrendje. A lista Felület java.,util csomag az egyik, hogy végrehajtja ezt a sorozatot a tárgyak rendelt egy adott módon úgynevezett lista.
= > Itt ellenőrizheti az összes Java oktatóanyagot.
csakúgy, mint a tömbök, a listaelemek az indexek segítségével is elérhetők, az első index 0-tól kezdve. Az index egy adott elemet jelöl az ” I ” Indexnél, azaz a lista kezdetétől távol van.
a Java-ban a lista néhány jellemzője a következő:
- A listák ismétlődő elemekkel rendelkezhetnek.
- a lista “null” elemekkel is rendelkezhet.,
- felsorolja a támogató generikumokat, azaz általános listákat is tartalmazhat.
- vegyes objektumok (különböző osztályok objektumai) is lehetnek ugyanabban a listában.
- A listák mindig megőrzik a beszúrási sorrendet, és lehetővé teszik a pozícióhoz való hozzáférést.
List in Java
a Java List felület a Java Collection interfész altípusa. Ez a szabványos felület, amely örökli a gyűjtemény interfész Java.
Az alábbiakban a Java List felület osztálydiagramja látható.,
amint az a fenti osztálydiagramon látható, a Java list interfész a java gyűjtemény interfészéből származik.util csomag, amely viszont kiterjed az Iterable interfész a java.util csomag. A class AbstractList a lista felületének vázszerű implementációját biztosítja.
a clinkedlist, Stack, Vector, ArrayList és CopyOnWriteArrayList osztályok a programozók által gyakran használt lista interfész implementációs osztályai., Így négyféle lista létezik Java-ban, azaz verem, LinkedList, ArrayList és vektor.
ezért, ha listafelületet kell végrehajtania, a fenti lista típusosztály bármelyikét végrehajthatja a követelményektől függően. A listafelület funkcionalitásának beillesztéséhez a programba importálnia kell a Java csomagot.util.,* amelyek listafelületet és más osztálymeghatározásokat tartalmaznak a következők szerint:
import java.util.*;
Create & Deklarate List
már kijelentettük, hogy a lista interfész, és olyan osztályok hajtják végre, mint az ArrayList, Stack, Vector és LinkedList. Ezért dönthettek létre esetben a lista a következő módon:
List linkedlist = new LinkedList(); List arrayList = new ArrayList();List vec_list = new Vector(); List stck_list = new Stack();
a fenti ábrán látható módon, akkor létrehozhat egy listát a fenti osztályok majd aktiválni ezeket a listákat az értékeket., A fenti kijelentésekből megtudhatja, hogy az elemek sorrendje a lista példányának létrehozásához használt osztálytól függően változik.
például egy lista verem osztály, a sorrend Utolsó, első ki (LIFO).
Java lista inicializálása
a lista objektum inicializálásához az alábbi módszerek bármelyikét használhatja.
#1) az asList metódus használata
a metódus asList () már részletesen szerepel a tömbök témakörben. A tömb értékei segítségével létrehozhat egy megváltoztathatatlan listát.,
az Általános szintaxis:
List<data_type> listname = Arrays.asList(array_name);
itt a data_type-nak meg kell egyeznie a tömb értékével.
a fenti állítás egy megváltoztathatatlan listát hoz létre. Ha azt szeretné, hogy a lista változékony legyen, akkor létre kell hoznia a lista egy példányát az új használatával, majd hozzá kell rendelnie a tömb elemeit az asList módszerrel.
Ez az alábbiakban látható:
List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));
hajtsunk végre egy Java programot, amely a lista létrehozását és inicializálását mutatja az asList módszerrel.,
kimenet:
a fenti programban először az asList módszerrel hoztuk létre a megváltoztathatatlan listát. Ezután létrehozunk egy módosítható listát az ArrayList egy példányának létrehozásával, majd inicializáljuk ezt az ArrayList-t a tömb értékeivel az asList módszerrel.
vegye figyelembe, hogy mivel a második lista megváltoztatható, további értékeket is hozzáadhatunk hozzá.
# 2) lista használata.add ()
mint már említettük, mivel a lista csak egy felület, amelyet nem lehet instantálni. De tudjuk példányosítani osztályok, amelyek végre ezt a felületet., Ezért a listaosztályok inicializálásához használhatja a megfelelő add módszereket, amelyek egy listafelület-módszer, de az egyes osztályok végrehajtják.
Ha létrehozni egy láncolt lista osztály, mint az alábbi:
List<Integer> llist = new LinkedList<Integer> ();
Majd, hogy egy elemet a listában, akkor használja a hozzáadás a módszer a következőképpen:
llist.add(3);
van is egy technika, az úgynevezett “Kettős zárójel inicializálás”, amelyben a lista használatba venné, majd elindítva hívja a hozzá módszer ugyanaz a nyilatkozatot.,
Ez az alábbiak szerint történik:
List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};
a fenti állítás az 1.és 3. elemeket hozzáadja a listához.
a következő program a lista inicializálását mutatja a Hozzáadás módszerrel. Azt is használja a kettős zárójel inicializálási technika.
Output:
Ez a program három különböző lista nyilatkozatok, azaz ArrayList, LinkedList, Stack.
ArrayList and LinkedList objects are instantiated and then the add methods are called to add elements to these objects., A stack esetében kettős zárójel inicializálást alkalmaznak, amelyben az Add módszert az instantálás során hívják.
# 3) Collections Class Methods
a Java collections osztálya különböző módszerekkel rendelkezik, amelyek felhasználhatók a lista inicializálására.
néhány módszer a következő:
- addAll
a gyűjtemények általános szintaxisa addAll módszer:
List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);
itt értékeket adhat hozzá egy üres listához. Az addAll módszer a listát az első paraméterként veszi fel, amelyet a listába beillesztendő értékek követnek.,
- unmodifiableList ()
az “unmodifiableList ()” módszer egy megváltoztathatatlan listát ad vissza, amelyhez az elemeket nem lehet hozzáadni vagy törölni.
a módszer általános szintaxisa a következő:
List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));
a módszer paraméterként veszi fel a listaértékeket, és visszaad egy listát. Ha egyáltalán megpróbál hozzáadni vagy törölni bármely elemet ebből a listából, akkor a fordító kivételt dob UnsupportedOperationException.
- singletonList ()
a “singletonList” metódus egy olyan listát ad vissza, amelyben egyetlen elem található. A lista megváltoztathatatlan.,
a módszer általános szintaxisa:
List<datatype> listname = Collections.singletonList(value);
a következő Java program bemutatja a fent tárgyalt Gyűjteményosztály mindhárom módszerét.
kimenet:
#4) A Java8 streamek használatával
a streamek Java 8-ban történő bevezetésével egy adatfolyamot is létrehozhat, és összegyűjtheti őket egy listában.
a következő program egy lista létrehozását mutatja a stream használatával.
Output:
a fenti program összegyűjti a string streamjét egy listába, majd visszaadja azt., Ön is használja a többi gyűjtők módszerek, mint a “toCollection”, “unmodifiableList” stb. eltekintve asList a gyűjtési funkció.
# 5) Java 9 lista.az () metódus
egy új módszer kerül bevezetésre a Java 9, List.az () amely tetszőleges számú elemet tartalmaz, és összeállítja a listát. Az összeállított lista megváltoztathatatlan.
Output:
list Example
Az alábbiakban egy teljes példa a lista interfész és a különböző módszerek.
kimenet:
a fenti programkimenet az ArrayList-en végrehajtott különböző műveleteket mutatja. Először létrehozza és inicializálja a listát., Ezután átmásolja egy másik lista tartalmát erre a listára, valamint eltávolít egy elemet a listáról. Végül a lista utolsó elemét egy másik értékkel helyettesíti.
a következő Bemutatónkban részletesen megvizsgáljuk a lista módszereit.
nyomtatási lista
vannak különböző módszerek, amelyek segítségével kinyomtathatja a lista elemeit Java-ban.
beszéljünk néhány módszerről itt.
#1) A Loop/Enhanced For Loop
a lista egy rendezett gyűjtemény, amely elérhető indexek., Használhatja a hurok, hogy használják iterálni az indexek nyomtatni minden eleme a lista.
Java van egy másik változata a For loop tudja, mint továbbfejlesztett hurok, hogy is lehet használni, hogy hozzáférjen, majd nyomtassa ki minden eleme a lista.
az alább látható Java program bemutatja a lista tartalmának nyomtatását a loop és enhanced For loop használatával.
kimenet:
#2) A toString metódus használatával
a lista interfészének “toString ()” metódusa a lista karakterlánc ábrázolását adja vissza.
az alábbi program bemutatja a toString() módszer használatát.,
Output:
List konvertálni egy tömb
a lista egy módszer toArray (), amely átalakítja a listát egy tömb. Miután átalakult egy tömbbe, használhatja az adott témában tárgyalt tömb módszereket a tömb tartalmának kinyomtatásához. Akkor sem használja vagy továbbfejlesztett hurok vagy akár toString módszer.
az alábbi példa a toString módszert használja a tömb tartalmának kinyomtatásához.
Output:
Java 8 patakok használata
patakok kerülnek bevezetésre a Java 8-ban. Használhatja a patakok hurok a listán., Vannak lambdák is, amelyek segítségével iterálhatja a listát.
az alábbi program mutatja a folyamok használatát, hogy végighaladjanak a listán, majd megjelenítsék annak tartalmát.
Output:
a fent tárgyalt módszereken kívül a lista iterátorai segítségével iterálhat a listán, és megjelenítheti annak tartalmát. Lesz egy teljes cikket a listán iterátor a következő útmutatók.
listák listája
a Java list interface támogatja a “listák listáját”. Ebben a lista egyes elemei ismét egy lista. Ez azt jelenti, hogy van egy lista egy másik listán belül.,
Ez a koncepció nagyon hasznos, ha el kell olvasni az adatokat mondjuk CSV fájlokat. Itt lehet, hogy több listát vagy listát kell olvasnia a listákon belül, majd tárolnia kell őket a memóriában. Ismét ezeket az adatokat kell feldolgoznia, majd vissza kell írnia a fájlba. Így ilyen helyzetekben fenntarthatja a listák listáját az adatfeldolgozás egyszerűsítése érdekében.
a következő Java program egy példát mutat be a listák Java listájára.
ebben a programban van egy lista a típusú karakterláncok listáiról. Két különálló karakterlánc-listát hozunk létre, és értékeket rendelünk ezekhez a listákhoz., Mindkét lista hozzáadódik a listák listájához a Hozzáadás módszerrel.
a listák listájának tartalmának megjelenítéséhez két hurkot használunk. A külső hurok (foreach) a listákhoz tartozó listák listáin keresztül iterálódik. A belső foreach hurok az egyes listák karakterláncelemeihez fér hozzá.
kimenet:
A listák Java listája egy kis koncepció, de fontos, különösen akkor, ha összetett adatokat kell olvasnia a programban.
Gyakran Ismételt Kérdések
Q #1) Mi a lista és a Java?
válasz: a lista rendezett elemgyűjtemény., Duplikált elemek lehetnek a listában.
a készlet nem rendezett gyűjtemény. A készlet elemei nincsenek elrendezve egy adott sorrendben. A készlet elemeinek is egyedinek kell lenniük. Nem teszi lehetővé a másolatokat.
Q # 2) Hogyan működik a lista a Java?
válasz: a lista egy Java felület, amely kiterjed a gyűjtemény felület. Az osztályok ArrayList, LinkedList, Stack, and Vector implementálja a lista interfész. Így egy programozó használhatja ezeket az osztályokat a lista Felület funkcionalitásának használatához.
Q # 3) Mi az ArrayList a Java-ban?,
válasz: az ArrayList egy dinamikus tömb. Ez egy átméretezhető elemgyűjtemény, amely megvalósítja a lista interfészt. Az ArrayList belsőleg egy tömböt használ az elemek tárolására.
Q # 4) a listák 0 vagy 1-nél kezdődnek Java-ban?
válasz: a Java listáinak nulla alapú egész indexe van. Ez azt jelenti, hogy a lista első eleme a 0.index, a második elem az 1. Indexnél stb.
Q #5) a lista megrendelt?
válasz: igen. A lista az elemek rendezett gyűjteménye., Ez a sorrend megmarad, egy új elem beillesztése során a listában,
következtetés
Ez a bemutató bemutatta a Java listafelületet. Megvitattuk a listák főbb fogalmait is, mint például a létrehozás, a listák inicializálása, a listák nyomtatása stb.
a közelgő oktatóanyagokban megvitatjuk a lista interfész által biztosított különböző módszereket. Azt is megvitatjuk az iterátor konstrukciót, amelyet a listaobjektum iterálására használnak. A következő Bemutatónkban megvitatjuk a listaobjektumok más adatstruktúrákra történő átalakítását.,
= > látogasson el ide, hogy a Java képzési sorozat minden.
Vélemény, hozzászólás?