Az ArrayList az egyik leggyakrabban használt adatstruktúra a Java nyelvben. Lehetővé teszi objektumok gyűjteményének dinamikus módosítását és tárolását. Ebben az oktatóanyagban bemutatjuk a Java ArrayList szintaxisát, és elmagyarázzuk, mikor érdemes használni.

Mi a különbség az ArrayList és az Array között Java-ban?

A Java ArrayList dinamikus, ami azt jelenti, hogy az elemek hozzáadásával vagy eltávolításával mérete növekszik vagy csökken. Érdemes megjegyezni, hogy az ArrayList osztály a Java Collections Framework része, és natívan nem érhető el. A tömbökkel ellentétben a java.util könyvtárból kell importálni.

Az ArrayListek akkor alkalmasak, ha a Java List hossza potenciálisan változhat. Példák: objektumok tárolása, adatok keresése vagy rendezése, listák vagy sorok létrehozása.

Ezzel szemben a tömb méretét nem lehet megváltoztatni. Ez azt jelenti, hogy ideális esetben előre tudnia kell, hogy a tömb hány objektumot fog tartalmazni. A tömbök előre meghatározott primitív adattípusok, például int, float, char vagy Boolean kezelésére alkalmasak.

Az ArrayList egyik hátránya, hogy az adatokhoz való hozzáférés hosszabb időt vehet igénybe. Míg a tömböknek fix, folyamatos memóriablokkjuk van, az ArrayList objektumai nem egymás mellett vannak tárolva. Fontos figyelembe venni az adatstruktúrák előnyeit és hátrányait, hogy kiválaszthassa a felhasználási esetéhez leginkább megfelelőt.

Mi a Java ArrayList szintaxisa?

Az ArrayList létrehozása előtt a megfelelő osztályt be kell importálni a java.util könyvtárból.

import java.util.ArrayList;
Java

Az általános szintaxis:

ArrayList<Type> arrayList= new ArrayList<>();
Java

A „Type” a Java ArrayList megfelelő adattípusát jelöli.

A következő lépés a strings és integers listák létrehozása.

ArrayList<String> arrayList= new ArrayList<>();
Java
ArrayList<Integer> arrayList= new ArrayList<>();
Java

Az ArrayListek a primitív adattípusok megfelelő wrapper osztályát használják, így azok objektumként kezelhetők. Ez azt jelenti, hogy int helyett integer kell megadnia.

Példák a Java ArrayList metódusokra

Az elemek hozzáadása vagy eltávolítása nem Java operátorokkal történik az ArrayList-ekben, hanem előre definiált módszerekkel. Az alábbiakban bemutatjuk a leggyakrabban használt ArrayList módszereket.

Elemek hozzáadása

Miután létrehoztuk a „colours” ArrayList-et (String típus), a .add() metódussal hozzáadunk különböző elemeket.

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
    }
}
Java

Ez az alábbi eredményt adja:

ArrayList: [blue, red, green]
Java

Elemek eltávolítása

Az objektumok eltávolításához a Java ArrayList-ből a .remove() metódust használjuk, és megadjuk az elem indexét.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
        String colour = colours.remove(1);
        System.out.println("ArrayList: " + colours);
        System.out.println("Removed Element: " + colour);
    }
}
Java

A kimenet a módosított ArrayList-et és az eltávolított elemet mutatja:

ArrayList: [blue, green]
Removed Element: red
Java

A legtöbb programozási nyelvhez hasonlóan a Java-ban is a számolás 0-tól kezdődik. Ez azt jelenti, hogy az 1. indexnél eltávolított elem red

Elemek elérése Java ArrayList-ben

A .get() függvény segítségével hozzáférhetünk egy adott pozícióban lévő elemhez.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> clothes = new ArrayList<>();
        clothes.add("jacket");
        clothes.add("shirt");
        clothes.add("pullover");
        System.out.println("ArrayList: " + clothes);
        String str = clothes.get(2);
        System.out.print("Element at index 2: " + str);
    }
}
Java

A kimenet:

ArrayList: [jacket, shirt, pullover]
Element at index 2: pullover
Java

Változó elemek

A .set() verzióval egy elemet úgy módosíthatunk, hogy egy új elemet rendelünk hozzá egy adott indexhez.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
        colours.set(2, "yellow");
        System.out.println("Modified ArrayList: " + colours);
    }
}
Java

Most az index 2 helyett yellow látunk green helyett:

ArrayList: [blue, red, green]
Modified ArrayList: [blue, red, yellow]
Java

A Java ArrayList hosszának meghatározása

Az ArrayList elemeinek száma könnyen kiszámítható a .size() metódus segítségével.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println(colours.size());
    }
}
Java

Ez az eredmény:

3
Java

Rendezés és iterálás az ArrayList-en keresztül

A Java ArrayList rendezéséhez be kell importálni a gyűjtemény osztályt. Az iterációhoz Java for-each ciklust használunk. A ciklus minden iterációjánál a megfelelő elem kimenetként megjelenik a konzolon.

import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> ages = new ArrayList<Integer>();
        ages.add(20);
        ages.add(54);
        ages.add(17);
        ages.add(9);
        Collections.sort(ages);
        for (int i : ages) {
            System.out.println(i);
        }
    }
}
Java

Az ArrayList elemei a legkisebbtől a legnagyobbig vannak sorba rendezve:

9
17
20
54
Java
Ugrás a főmenübe