ArrayList je jedna z nejčastěji používaných datových struktur v Javě. Umožňuje dynamicky upravovat a ukládat sbírku objektů. V tomto tutoriálu vám představíme syntaxi Java ArrayList a vysvětlíme, kdy ji použít.

Jaký je rozdíl mezi ArrayList a Array v Javě?

Java ArrayList je dynamický, což znamená, že se zvětšuje a zmenšuje, když se přidávají nebo odstraňují prvky. Stojí za zmínku, že třída ArrayList je součástí Java Collections Framework a není nativně dostupná. Na rozdíl od polí musí být importována z knihovny java.util.

ArrayLists jsou vhodnou volbou, pokud se délka seznamu Java List může potenciálně měnit. Příklady zahrnují ukládání objektů, vyhledávání nebo třídění dat a vytváření seznamů nebo front.

Naopak, velikost pole nelze změnit. To znamená, že byste měli ideálně předem znát počet objektů, které pole bude obsahovat. Pole jsou vhodná pro správu předem definované sady primitivních datových typů, jako jsou int, float, char nebo Boolean.

Nevýhodou ArrayListů je, že přístup k nim může trvat déle. Zatímco pole mají pevný souvislý blok paměti, objekty v ArrayListech nejsou uloženy souvisle. Je důležité vzít v úvahu výhody a nevýhody datových struktur, abyste mohli vybrat tu, která nejlépe vyhovuje vašemu použití.

Jaká je syntaxe pro Java ArrayList?

Před vytvořením ArrayList je nutné importovat odpovídající třídu z knihovny java.util.

import java.util.ArrayList;
Java

Obecná syntaxe je:

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

„Typ“ označuje příslušný datový typ v Java ArrayList.

Dalším krokem je vytvoření seznamů strings a integers.

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

ArrayLists používají odpovídající obalovou třídu primitivních datových typů, takže se s nimi zachází jako s objekty. To znamená, že musíte zadat integer místo int.

Příklady metod Java ArrayList

Operace, jako je přidávání nebo odebírání prvků, se v ArrayLists neprovádějí pomocí operátorů jazyka Java, ale pomocí předdefinovaných metod. Níže vám ukážeme nejběžnější metody ArrayList.

Přidávání prvků

Po vytvoření ArrayList „colours“ (String typů) přidáme různé prvky pomocí metody .add().

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

Výsledkem je:

ArrayList: [blue, red, green]
Java

Odstranění prvků

K odstranění objektů z Java ArrayList používáme metodu .remove() a zadáme index prvku.

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

Výstup zobrazuje upravený ArrayList a odstraněný prvek:

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

Stejně jako u většiny programovacích jazyků začíná počítání v Javě od 0. To znamená, že odstraněný prvek na indexu 1 je red.

Přístup k prvkům v Java ArrayList

Pomocí funkce .get() můžeme přistupovat k prvku na konkrétní pozici.

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

Výsledkem je:

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

Měnící se prvky

S .set() můžeme změnit prvek přiřazením nového prvku na konkrétním indexu.

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

Nyní vidíme yellow místo green na indexu 2:

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

Určení délky Java ArrayList

Počet prvků v ArrayList lze snadno vypočítat pomocí metody .size().

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

Toto je výsledek:

3
Java

Třídění a iterace přes ArrayList

Pro třídění Java ArrayList je nutné importovat třídu collections. Pro iterace používáme smyčku Java for-each. Při každé iteraci smyčky se příslušný prvek vypíše na konzoli.

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

Prvky ArrayList jsou zobrazeny od nejmenších po největší:

9
17
20
54
Java
Přejít do hlavního menu