Listák használata Javaban
A Java programozási nyelvben a listák az adatok rendezett gyűjteményei, amelyekhez index alapján lehet hozzáférni. Széles körben használják az adatok tárolására és manipulálására különféle alkalmazásokban. Ez a cikk átfogó áttekintést nyújt a listák használatáról Javaban.
Tartalomjegyzék
Listák létrehozása
A listák a java.util.List
interfész megvalósítása, amely számos osztályt tartalmaz, például ArrayList
, LinkedList
és Vector
. Az új lista létrehozásához használhatja a megfelelő osztály konstruktorát.
java
// ArrayList létrehozása
List<String> names = new ArrayList<>();
// LinkedList létrehozása
List<Integer> numbers = new LinkedList<>();
// Vector létrehozása
List<Double> values = new Vector<>();
Elem hozzáadása listákhoz
ArrayList: Az elemek az add()
módszerrel adhatók hozzá az ArrayListhez.
java
names.add("John");
names.add("Mary");
LinkedList: Az elemeket az add()
vagy az addLast()
módszerrel is hozzáadhatja a LinkedListhez.
java
numbers.add(1);
numbers.addLast(2);
Vector: Az elemeket az add()
módszerrel adhatja hozzá a Vectorhoz.
java
values.add(3.14);
values.add(2.71);
Elemek lekérése listákból
ArrayList: Az get()
módszerrel lekérheti az elemet az ArrayListből az indexe alapján.
java
String name = names.get(0);
LinkedList: Az get()
vagy az getFirst()
módszerrel is lekérheti az elemet a LinkedListből.
java
int number = numbers.get(0);
int firstNumber = numbers.getFirst();
Vector: Az get()
módszerrel lekérheti az elemet a Vectorból az indexe alapján.
java
double value = values.get(0);
Elemek eltávolítása listákból
ArrayList: Az remove()
módszerrel távolíthat el egy elemet az ArrayListből az indexe vagy az értéke alapján.
java
names.remove(0);
names.remove("John");
LinkedList: Az remove()
vagy a removeFirst()
módszerrel is eltávolíthat egy elemet a LinkedListből.
java
numbers.remove(0);
numbers.removeFirst();
Vector: Az remove()
módszerrel távolíthat el egy elemet a Vectorból az indexe vagy az értéke alapján.
java
values.remove(0);
values.remove(3.14);
Listák mérete és üres volta
Méret: A size()
módszerrel lekérheti a listában lévő elemek számát.
java
int size = names.size();
Üres volta: Az isEmpty()
módszerrel ellenőrizheti, hogy a lista üres-e.
java
boolean isEmpty = names.isEmpty();
Listák iterálása
ArrayList: Az Iterator
interfészt használhatja az ArrayList elemeinek iterálásához.
java
for (String name : names) {
System.out.println(name);
}
LinkedList: Az Iterator
interfészt vagy a forEach()
metódust is használhatja a LinkedList elemeinek iterálásához.
java
for (int number : numbers) {
System.out.println(number);
}
numbers.forEach(n -> System.out.println(n));
Vector: Az Iterator
interfészt használhatja a Vector elemeinek iterálásához.
java
for (double value : values) {
System.out.println(value);
}
Egyéb listaműveletek
Listák rendezése: A Collections.sort()
vagy az Arrays.sort()
módszerrel rendezheti a listákat.
java
// ArrayList rendezése
Collections.sort(names);
// Integer listák rendezése
Arrays.sort(numbers);
Listák másolása: A Collections.copy()
módszerrel másolhat listákat.
java
List<String> copyNames = new ArrayList<>();
Collections.copy(copyNames, names);
Listák átalakítása: Az Arrays.asList()
és a List.toArray()
módszerekkel átalakíthatja a listákat tömbbé és tömböt listává.
java
// Lista átalakítása tömbbé
String[] arrayNames = names.toArray(new String[names.size()]);
// Tömb átalakítása listává
List<String> listNames = Arrays.asList(arrayNames);
Következtetés
A listák elengedhetetlenek a Java programozásban az adatok tárolására és kezelésére. Az ArrayList, LinkedList és Vector osztályok segítségével létrehozhat, módosíthat és iterálhat listákat az alkalmazások igényeinek megfelelően. Ez a cikk biztosította a listák használatának átfogó áttekintését Javaban, beleértve a létrehozást, hozzáadást, lekérdezést, eltávolítást, iterálást és egyéb gyakori műveleteket. A listaműveletek elsajátítása lehetővé teszi a fejlesztők számára, hogy hatékony és rugalmas adatkezelési megoldásokat valósítsanak meg Java-alkalmazásaikban.
GYIK
1. Melyik a különbség az ArrayList, a LinkedList és a Vector között?
* Az ArrayList a leggyorsabb hozzáférést és módosítást teszi lehetővé.
* A LinkedList a legjobb választás a lista elején vagy végén történő gyakori hozzáadásokhoz és eltávolításokhoz.
* A Vector szinkronizált, ami biztonságossá teszi több szálú környezetben való használatra.
2. Mi a különbség az index alapú hozzáférés és az iterátorok használata között?
* Az index alapú hozzáférés gyorsabb, de nem teszi lehetővé a lista módosítását iterálás közben.
* Az iterátorok lehetővé teszik a lista módosítását iterálás közben, de lassabbak, mint az index alapú hozzáférés.
3. Mikor kell használni a Collections.sort() és az Arrays.sort() módszereket?
* A Collections.sort()
módszert gyűjtemények (például listák) rendezésére használják.
* Az Arrays.sort()
módszert tömbök rendezésére használják.
4. Hogyan lehet lista másolatát készíteni?
A Collections.copy()
módszert használhatja lista másolatának készítéséhez.
5. Hogyan lehet lista átalakítani tömbé és tömböt listává?
Az Arrays.asList()
és a List.toArray()
módszereket használhatja a listák tömbbé és tömbök listává való átalakítására.
6. Mikor hasznosak a generikus listák?
A generikus listák akkor hasznosak, ha különféle típusú elemeket kell tárolni egy listában. Ez lehetővé teszi a típusbiztos kódot és csökkenti a hibákat.
7. Hogyan lehet hatékonyan keresni egy listában?
A Collections.binarySearch()
módszert használhatja hatékony kereséshez egy rendezett listában.
8. Hogyan lehet egy listát biztonságossá tenni több szálú hozzáféréshez?
A Collections.synchronizedList()
metódust használhatja egy lista biztonságossá tételére több szálú hozzáféréshez.