Kihagyás

Összetett adattípusok

Az összetett adattípusok lehetővé teszik több ugyanolyan típusú objektum egyetlen változóban történő tárolását a dinamikus és könnyebb adatfeldolgozás érdekében.

ArrayList

Megjegyzés

A Java ArrayList megfeleltethető a Pythonban tanult listákhoz. Az elemeknek sorszáma van és egyetlen változóban tároljuk őket. Számos metódussal rendelkezik, amelyek megkönnyítik a munkát.

Az ArrayList osztály egy átméretezhető tömb, amely a java.util csomagban található.

A Java beépített tömb és ArrayList közötti különbség az, hogy a tömb mérete nem módosítható (ha elemeket szeretne hozzáadni vagy eltávolítani egy tömbhöz/tömbből, létre kell hoznia egy újat). Míg az elemek bármikor hozzáadhatók és eltávolíthatók az ArrayList listáról.

Szintaxis

ArrayList<ADATTÍPUS> VÁLTOZÓNÉV = new ArrayList<ADATTÍPUS>();

import java.util.ArrayList; // ArrayList importálása

ArrayList<String> cars = new ArrayList<String>(); // Új ArrayList object lérehozása

Elem hozzáadása

Az ArrayList osztály számos hasznos metódussal rendelkezik. Ha például elemeket szeretnénk hozzáadni az ArrayList listához, használjuk az add() metódust:

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();

        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        System.out.println(cars);
    }
}

Elem elérése

Az ArrayList egy elemének eléréséhez használjuk a get() metódust az index száma alapján:

cars.get(0);

Elem módosítása

Egy elem módosításához használjuk a set() metódust és hivatkozzunk az indexszámra:

cars.set(0, "Opel");

Elem törlése

Egy elem eltávolításához használjuk a remove() metódust és hivatkozzunk az indexszámra:

cars.remove(0);

Kiürítés

Az ArrayList összes elemének eltávolításához használjuk a clear() metódust:

cars.clear();

Elemek száma

Ha meg szeretnénk tudni, hogy egy ArrayList hány elemből áll, használjuk a size metódust:

cars.size();

Elemek bejárása

public class Main {
    public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();

        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        for (String i : cars) {
            System.out.println(i);
        }
    }
}

HashSet

Megjegyzés

A Java HashSet megfeleltethető a Pythonban tanult halmazokhoz. Az elemeknek nincs sorszáma és egyetlen változóban tároljuk őket. Számos metódussal rendelkezik, amelyek megkönnyítik a munkát.

A HashSet olyan elemek gyűjteménye, ahol minden elem egyedi és a java.util csomagban található.

Szintaxis

HashSet<ADATTÍPUS> VÁLTOZÓNÉV = new HashSet<ADATTÍPUS>();

import java.util.HashSet; // HashSet osztály importálása

HashSet<String> cars = new HashSet<String>();

Elem hozzáadása

import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        HashSet<String> cars = new HashSet<String>();

        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        System.out.println(cars);
    }
}

Elem létezésének ellenőrzése

Mint a Python halmazokban, a Java HashSetben is csak egyetlen egyszer szerepelhet egy elem, amelyet könnyen tudunk ellenőrizni a contains() metódussal:

import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        HashSet<String> cars = new HashSet<String>();

        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        boolean tartalmazza = cars.contains("Volvo");

        System.out.println("tartalmazza = " + tartalmazza); // tartalmazza = true
    }
}

Elem törlése

cars.remove("Volvo");

Kiürítés

Az ArrayList összes elemének eltávolításához használjuk a clear() metódust:

cars.clear();

Elemek száma

Ha meg szeretnénk tudni, hogy egy HashSet hány elemből áll, használjuk a size metódust:

cars.size();

Elemek bejárása

public class Main {
    public static void main(String[] args) {
        HashSet<String> cars = new HashSet<String>();

        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        for (String i : cars) {
            System.out.println(i);
        }
    }
}

HashMap

Megjegyzés

A Java HashMap megfeleltethető a Pythonban tanult szótárakhoz. A kulcs-érték párokat egyetlen változóban tároljuk. Számos metódussal rendelkezik, amelyek megkönnyítik a munkát.

Az ArrayList fejezetben megtanultuk, hogy a tömbök rendezett gyűjteményként tárolják az elemeket és indexszámmal (int típussal) kell elérned őket. A HashMap azonban "kulcs/érték" párokban tárolja az elemeket és más típusú indexszel (pl. String) érheti el őket.

Az egyik objektum kulcsként (indexként) szolgál egy másik objektumhoz (értékhez). Különböző típusokat tárolhat: Sztringkulcsok és Egész értékek, vagy azonos típusú, például: Karakterlánckulcsok és Karakterlánc értékek:

import java.util.HashMap;

HashMap<String, String> capitalCities = new HashMap<String, String>();

Elem hozzáadása

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        jatekosok.put(23, "Dobó Dávid");

        System.out.println("jatekosok = " + jatekosok); // jatekosok = {55=Jova Levente, 23=Dobó Dávid}
    }
}

Elem értékének lekérdezése

Az előző példában eltároltuk a mezszám alapján a játékosokat. Kérjük ki a játékos nevét, aki az 55-ös mezszámot viseli!

Ezt a get() metódussal tehetjük meg:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        jatekosok.put(23, "Dobó Dávid");

        String jatekos = jatekosok.get(55);

        System.out.println("jatekos = " + jatekos); // jatekos = Jova Levente
    }
}

Elem törlése

Az elem törlése szintén a kulcs alapján történik, hasonlóan az érték lekérdezéshez:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        System.out.println("jatekosok = " + jatekosok); // jatekosok = {55=Jova Levente}

        jatekosok.remove(55);
        System.out.println("jatekosok = " + jatekosok); // jatekosok = {}
    }
}

Kiürítés

Az összes elem eltávolításához használjuk a clear() metódust:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        jatekosok.put(23, "Dobó Dávid");
        System.out.println("jatekosok = " + jatekosok); // jatekosok = {55=Jova Levente, 23=Dobó Dávid}

        jatekosok.clear();
        System.out.println("jatekosok = " + jatekosok); // jatekosok = {}
    }
}

Elemek száma

Ha meg szeretnénk tudni, hogy egy HashSet hány elemből áll, használjuk a size metódust:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        jatekosok.put(23, "Dobó Dávid");

        int darabszam = jatekosok.size();
        System.out.println("darabszam = " + darabszam); // darabszam = 2
    }
}

Elemek bejárása

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> jatekosok = new HashMap<Integer, String>();

        jatekosok.put(55, "Jova Levente");
        jatekosok.put(23, "Dobó Dávid");

        for (int i : jatekosok.keySet()) {
            System.out.println(i + " - " + jatekosok.get(i));
        }
    }
}

A program kimenete

55 - Jova Levente
23 - Dobó Dávid

További lehetőségek

A Java számos egyéb lehetőséget is biztosít az adatok tárolására, azonban mi a tananyagban ezeket nem vesszük át. Aki szeretne többet megtudni, az a következő linkeken teheti meg: