
Java programátor expert
Java ArrayList je dátová štruktúra, ktorá ti výrazne zjednoduší prácu s poľami. Na rozdiel od klasických polí umožňuje dynamicky meniť svoju veľkosť a ponúka celý rad praktických metód pre pridávanie, mazanie či vyhľadávanie prvkov. V článku sa pozrieme na to, ako ArrayList funguje, aké má výhody a obmedzenia, a v akých situáciách ti najlepšie poslúži.
V článku sa dozvieš:
Pojem array list označuje všeobecný typ dátovej štruktúry – dynamický zoznam založený na poli. V Jave ho reprezentuje trieda ArrayList, ktorá ponúka množstvo užitočných metód. Táto kolekcia reprezentuje dynamické pole objektov a umožňuje zmenu svojej veľkosti podľa potreby aplikácie.
ArrayList kolekcia – hierarchia dedičnosti (zdroj: callicoder.com/static/b5d6144ae3fbf06551c077fea6cbd0a1/9cad3/java-arraylist-hierarchy.jpg)
ArrayList kolekcia uľahčuje prácu so statickými poliami v Jave. Tie majú preddefinovanú fixnú veľkosť, ktorú treba stanoviť pri ich vytvorení. Ak je potrebné uložiť viac prvkov, než umožňuje kapacita poľa, programátor musí vytvoriť nové pole, skopírovať doň prvky a staré pole odstrániť.
Kolekcia ArrayList tento proces zjednodušuje a automatizuje. Jej hlavnou vlastnosťou je dynamická zmena veľkosti, pričom pri prekročení kapacity sa automaticky zväčší o 50 % aktuálnej kapacity poľa. Bola predstavená v Jave 1.2 ako súčasť balíka java.util. Na rozdiel od Java Vector nie je synchronizovaná, čo znamená, že umožňuje rýchlejšie operácie, no je potrebné ju manuálne synchronizovať v prípade viacvláknového prostredia.
Na vytvorenie inštancie ArrayList môžeme použiť jeden z nasledujúcich konštruktorov:
1. Prázdny ArrayList
Vytvorí prázdny ArrayList s počiatočnou kapacitou 10.
ArrayList<String> list = new ArrayList<>();
2. ArrayList s počiatočnou kapacitou
Umožňuje definovať počiatočnú kapacitu.
ArrayList<String> list = new ArrayList<>(20);
3. ArrayList skonštruovaný z kolekcie
Inicializuje ArrayList prvkami z danej kolekcie.
List<String> fruits = List.of("Apple", "Banana");
ArrayList<String> list = new ArrayList<>(fruits);
K základným operáciám s ArrayList patria:
Kompletný prehľad metód triedy ArrayList nájdeš v oficiálnej dokumentácii:
ArrayList je ideálna v nasledovných prípadoch:
Naopak, nie je vhodná, ak:
Nasledujúci program demonštruje manipuláciu s dynamickým zoznamom ArrayList pri tvorbe nákupného zoznamu do obchodu:
Main.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
ArrayList<String> shoppingList = new ArrayList<>();
// Add some items to the shoppingList
shoppingList.add("Bread");
shoppingList.addAll(List.of("Milk", "Chocolate"));
shoppingList.addLast("Butter");
// Traversing elements using Iterator
System.out.println("Shopping list:");
Iterator it = shoppingList.iterator();
while (it.hasNext())
System.out.println(it.next());
System.out.println();
// Adding a new food to a specific index
shoppingList.add(1, "Potatoes");
System.out.println("Updated shopping list: ");
System.out.println(shoppingList);
// Remove chocolate
shoppingList.remove("Chocolate");
System.out.println("After removing chocolate:");
System.out.println(shoppingList);
// Sort finished shoppint list
Collections.sort(shoppingList);
System.out.println("Sorted shopping list: ");
System.out.println(shoppingList);
// Search item butter
String search = "Butter";
if (shoppingList.contains(search)) {
System.out.println("Item '" + search + "' is at index " + shoppingList.indexOf(search) + " in the shopping list.");
} else {
System.out.println("Item '" + search + "' is not in the shopping list");
}
}
}
Výstup z tohto príkladu je:
Pripravili sme pre teba súbory so spomínaným príkladom vo forme kódu, ktorý si môžeš spustiť priamo v Jave. Stiahni si Java kód pre ArrayList tu.
Súvisiace články