Měli jsme možnost se seznámit s polem jako jedním ze základních datových struktur v Javě. Nyní se podíváme na pokročilejší datovou strukturu, která nám umožňuje pracovat s proměnným počtem prvků a přináší nám další flexibilitu při práci s daty. Tato datová struktura je známá jako třída ArrayList. Třída ArrayList rozšiřuje možnosti, které nám pole poskytuje, a nabízí několik klíčových výhod pro dynamickou manipulaci s daty. V tomto odstavci si přiblížíme základní koncepty třídy ArrayList, zjistíme, jak ji používat a prozkoumáme její výhody oproti obyčejným polím. Tímto se dostáváme na další úroveň v našem porozumění datovým strukturám v Javě.

Výhody využití třídy ArrayList:

  1. Dynamická velikost: Oproti polím, která mají pevnou velikost po vytvoření, může ArrayList dynamicky růst a zmenšovat se dle potřeby. To je velmi užitečné, když potřebujeme ukládat proměnný počet prvků.

  2. Snadné přidávání a odebírání prvků: Třída ArrayList poskytuje metody pro přidávání a odebírání prvků na konkrétní pozici v seznamu. To usnadňuje manipulaci s daty.

  3. Dynamické rozšiřování kapacity: Pokud ArrayList dosáhne své kapacity, automaticky se zvětší a všechny prvky jsou do něj přesunuty, takže nemusíme manuálně spravovat zvětšování pole.

  4. Široká funkcionalita: Třída ArrayList nabízí mnoho metod pro práci se seznamem, jako jsou add(), remove(), get(), size() atd.

Nevýhody použití třídy ArrayList:

  1. Mírně větší paměťová náročnost: Oproti polím, která mají pevnou velikost, může ArrayList vyžadovat více paměti kvůli dynamickému rozšiřování kapacity.

  2. Mírně pomalejší: Přístup k prvkům v ArrayListu může být mírně pomalejší než přístup k prvkům v poli, zejména u velkých datových struktur. To je kvůli vnitřní implementaci ArrayListu.

Obecné založení ArrayListu:

// Vždy je nutné knihovnu importovat do programu
import java.util.ArrayList;

Pro založení instance třídy ArrayList použijeme konstruktor třídy ArrayList:

// Obecná deklarace ArrayListu pomocí obecné třídy Object
ArrayList<Object> list = new ArrayList<>();

Pozor: Pokud zavoláte pouze ArrayList<Object> list, tak program vyhodí chybu NullPointerException, protože není jasné, jakou má proměnná list typu ArrayList hodnotu.

Syntaxe pro vytvoření ArrayListu:

// Deklarace a vytvoření ArrayListu pro celá čísla ArrayList<Integer> seznamCisel = new ArrayList<>(); // Deklarace a vytvoření ArrayListu pro řetězce ArrayList<String> seznamRetezcu = new ArrayList<>();

Přidání prvků do ArrayListu:

seznamCisel.add(10); // Přidání čísla 10 do seznamCisel seznamCisel.add(20); // Přidání čísla 20 do seznamCisel seznamRetezcu.add("Jedna"); // Přidání řetězce "Jedna" do seznamRetezcu seznamRetezcu.add("Dva"); // Přidání řetězce "Dva" do seznamRetezcu

Získání prvků z ArrayListu:

int prvniCislo = seznamCisel.get(0); // Získání prvního čísla z seznamCisel String prvniRezetez = seznamRetezcu.get(0); // Získání prvního řetězce z seznamRetezcu

Odebírání prvků z ArrayListu:

seznamCisel.remove(0); // Odebrání prvního čísla ze seznamCisel seznamRetezcu.remove(0); // Odebrání prvního řetězce ze seznamRetezcu

Zjištění počtu prvků v ArrayListu:

int pocetCisel = seznamCisel.size(); // Zjištění počtu čísel v seznamCisel int pocetRetezcu = seznamRetezcu.size(); // Zjištění počtu řetězců v seznamRetezcu

Další operace a metody třídy ArrayList:

Třída ArrayList poskytuje mnoho dalších metod pro práci se seznamem, jako je clear() pro vymazání seznamu, contains() pro ověření, zda prvek je v seznamu, isEmpty() pro zjištění, zda je seznam prázdný, a mnoho dalších. Přehled všech metod najdete v dokumentaci třídy ArrayList.

Iterace ArrayListem pomocí cyklu:

for (String item : list) {
    System.out.println(item); // TENTO KÓD VYPÍŠE KAŽDÝ PRVEK SEZNAMU NA SAMOSTATNÝ ŘÁDEK
}

Naposledy změněno: Sobota, 12. srpna 2023, 19.43