A Java listák különösen alkalmasak olyan esetekben, amikor az adathalmaz mérete nem ismert előre, vagy ha a méret idővel várhatóan változni fog. Konkrét példákkal mutatjuk be, hogyan lehet használni a Java listákat, és milyen műveleteket lehet velük végrehajtani.

Mire használhatók a Java listák?

A listák a Java programozás egyik alapvető adatstruktúrája, és sokféle módon felhasználhatók. Elemekből állnak, amelyek rendezett sorrendben vannak elrendezve. A listában lévő elemeket hozzáadhatja, módosíthatja, törölheti vagy lekérdezheti. A Java listák különböző osztályokhoz tartozó objektumokat tartalmazhatnak. Lehetőség van duplikált elemek vagy null elemek tárolására is. Ezenkívül a Java listák támogatják a generikus osztályokat és módszereket, biztosítva ezzel a típusbiztonságot.

A listák adatbázis-alkalmazásokhoz használhatók. Itt adatbázis-lekérdezésekből származó nagy adathalmazok tárolására és elérésére szolgálnak. A grafikus felhasználói felületeken a Java-listákat gyakran használják elemek listájának megjelenítésére, például legördülő menükben szereplő opciók vagy online áruházakban található különböző termékek listájának megjelenítésére.

A Java listák algoritmusokban és adatstruktúrákban is elengedhetetlenek. Használják őket rendezési algoritmusokban, keresési algoritmusokban, valamint verem- és sorstruktúrákban. Hálózati alkalmazásokban a listák segíthetnek a kapcsolatok és a socketek kezelésében.

Milyen listamódszerekkel rendelkezik a Java?

A Java listák a Collection interfészhez tartoznak, és a java.util csomagból kell importálni őket. A Java ArrayList, LinkedList, Vector és Stack esetében különböző implementációs osztályok közül lehet választani. A listák különböző példányait a következő kóddal lehet deklarálni:

List linkedList = new LinkedList(); // LinkedList
List arrayList = new ArrayList(); // ArrayList
List vecList = new Vector(); // Vector
List stackList = new Stack(); //Stack
Java

Íme néhány a Java listákhoz használható legfontosabb módszer:

  1. int size(): Meghatározza a lista elemeinek számát
  2. void add(int index, E element): Elem hozzáadása egy adott pozícióba
  3. boolean isEmpty(): Ellenőrzi, hogy a lista üres-e
  4. void clear(): Eltávolítja az összes elemet a listából
  5. boolean contains(Object o): Visszaadja az true értéket, ha az o objektum szerepel a listában
  6. boolean add(E e): Elem hozzáadása a lista végéhez
  7. boolean remove(Object o): Eltávolítja az elem első előfordulását
  8. E get(int index): Cseréli vagy beszúr egy elemet egy megadott indexbe
  9. E set(int index, E element): Egy elemet helyettesít vagy beilleszt egy megadott indexre
  10. Object[] toArray(): Visszaad egy tömböt, amely tartalmazza a lista elemeit
  11. List<E> subList(int fromIndex, int toIndex): Az összes elemet rögzíti a megadott intervallumon belül
  12. default void replaceAll(UnaryOperator<E> operator): Java 8 szabványos módszere, amely egyárú Java operátorokat alkalmaz minden elemre, majd minden elemet a művelet eredményével helyettesít.

A Java listák használata

Az alábbiakban bemutatjuk a Java listákkal való munkavégzés során általánosan használt módszereket. Ezek közé tartozik a tömbök listákká és listák tömbökké történő konvertálása, valamint az elemek rendezése, lekérése és módosítása.

Tömböt listává alakítás

A tömb listává alakításához ciklusokkal végigfuthat a tömbön, és a add() metódussal egyenként hozzáadhatja az elemeket a listához.

import java.util.*;
    public class ArrayToList{
      public static void main(String args[]){
      // Creating Array
      String[] colors={"blue","green","red","yellow"};
      System.out.println("Array: "+Arrays.toString(colors));
      //Converting Array to List
      List<String> list=new ArrayList<String>();
      for(String color: colors){
        list.add(color);
      }
      System.out.println("List: "+list);
      }
    }
Java

Ez a következő kimenetet eredményezi:

Array: [blue, green, red, yellow]
List: [blue, green, red, yellow]
Java

Lista átalakítása tömbvé

A toArray(). módszerrel listát alakíthat át tömbé:

import java.util.*;
    public class ListToArray{
      public static void main(String args[]){
       List<String> days = new ArrayList<String>();
       days.add("Monday");
       days.add("Tuesday");
       days.add("Wednesday");
       days.add("Thursday");
       days.add("Friday");
       days.add("Saturday");
       days.add("Sunday");
       // Converting ArrayList to Array
       String[] array = days.toArray(new String[days.size()]);
       System.out.println("Array: "+Arrays.toString(array));
       System.out.println("List: "+days);
      }
    }
Java

A kimenetben látható, hogy a tömb és a lista elemei megegyeznek:

Array: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
List: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
Java

Elemek hívása és módosítása egy Java listában

A get() metódussal hozzáférhet egy elemhez egy adott indexen. A set() metódussal kicserélhet egy elemet egy másik elemmel a lista egy adott pozíciójában.

import java.util.*;
    public class ListExample{
      public static void main(String args[]){
      // Creating a List
      List<String> letters=new ArrayList<String>();
      // Adding elements
      letters.add("a");
      letters.add("b");
      letters.add("c");
      // get()
      System.out.println("Element at index 1: "+letters.get(1));
      // set()
      letters.set(2, "d");
      for(String letter: letters)
      System.out.println(letter);
      }
    }
Java

Mivel a Java-ban a számolás az index 0-tól kezdődik, a következő eredményt kapjuk:

Element at index 1: b
a
b
d
Java

Lista rendezése

A Java listát a Collections osztály .sort() metódusával rendezheti. A listát ciklussal végigfuthatja, és az elemeket egyenként kinyomtathatja a konzolra:

import java.util.*;
    class SortArrayList{
      public static void main(String args[]){
      // Creating a list of numbers
      List<Integer> numbers=new ArrayList<Integer>();
      numbers.add(4);
      numbers.add(57);
      numbers.add(92);
      numbers.add(26);
      // Sorting
      Collections.sort(numbers);
      for(Integer number: numbers)
        System.out.println(number);
      }
    }
Java

A Java Listában szereplő számok a legkisebbtől a legnagyobbig jelennek meg a képernyőn:

4
26
57
92
Java
Ugrás a főmenübe