Sobes.tech
Junior

Milyen gyűjtemény-implementációk léteznek a Java programozási nyelvben?

sobes.tech MI

Válasz az MI-től

  • Interfészek:

    • Collection: Minden gyűjtemény alapinterfésze.
    • List: Rendezett gyűjtemény (indexekkel).
    • Set: Duplikátumokat nem tartalmazó gyűjtemény.
    • SortedSet: Duplikátumokat nem tartalmazó gyűjtemény, melynek elemei rendezettek.
    • Map: Asszociatív tömb (kulcs-érték).
    • SortedMap: Rendezett asszociatív tömb kulcsok szerint.
    • Queue: Gyűjtemény az elemek tárolására feldolgozás előtt.
    • Deque: Két végű sor.
  • Osztályok (fő megvalósítások):

    • List-hez:

      • ArrayList: Dinamikus tömb. Gyors hozzáférés index szerint, lassú beszúrás/eltávolítás középen.
      • LinkedList: Kétirányú láncolt lista. Lassú index szerinti hozzáférés, gyors beszúrás/eltávolítás középen.
      • Vector: Régi, szinkronizált, azonos az ArrayList-tel.
      • Stack: A Vector alosztálya, verem (LIFO) megvalósítása.
    • Set-hez:

      • HashSet: Hash-tábla alapú megvalósítás. Nem garantálja a sorrendet.
      • LinkedHashSet: Hash-tábla és láncolt lista alapú. Megőrzi a beszúrás sorrendjét.
      • TreeSet: Piros-fekete fa alapú. Elemei növekvő sorrendben rendezettek.
    • Map-hez:

      • HashMap: Hash-tábla alapú. Nem garantálja a párok sorrendjét.
      • Hashtable: Régi, szinkronizált, azonos a HashMap-mel.
      • LinkedHashMap: Hash-tábla és láncolt lista alapú. Megőrzi a beszúrás sorrendjét.
      • TreeMap: Piros-fekete fa alapú. Párok kulcs szerint rendezettek.
    • Queue-hez:

      • PriorityQueue: Prioritási sor. Az elemek természetes sorrendben vagy összehasonlító szerint kerülnek kivételre.
      • ArrayDeque: Tömb alapú két végű sor.
  • Segédosztályok:

    • Collections: Statikus metódusok gyűjteményekhez (rendezés, keresés, szinkronizálás stb.).
// ArrayList példája
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet példája
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplikátum nem kerül hozzáadásra
System.out.println(numbers.size()); // 2
// HashMap példája
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// PriorityQueue példája
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (legkisebb prioritás)