ArrayList v Javě je a měnit velikost (nebo dynamické) pole z balíček java.util které se mohou automaticky zvětšovat nebo zmenšovat při přidávání nebo odebírání prvků na rozdíl od běžných polí s pevnou velikostí.
konkretizace v Javě
- Indexovaný přístup: K prvkům lze přistupovat pomocí jejich indexu stejně jako k polím.
- Umožňuje duplikáty: Duplicitní prvky jsou povoleny.
- Udržuje objednávku vložení: Prvky se ukládají v pořadí, v jakém jsou vloženy.
- Nesynchronizováno: Ve výchozím nastavení není ArrayList bezpečný pro vlákna (pro souběžný přístup je nutná ruční synchronizace).
import java.util.ArrayList; class Main { public static void main (String[] args) { // Creating an ArrayList ArrayList<Integer> a = new ArrayList<Integer>(); // Adding Element in ArrayList a.add(1); a.add(2); a.add(3); // Printing ArrayList System.out.println(a); } }
Výstup
[1 2 3]
Hierarchie ArrayList
Realizuje Rozhraní seznamu což je dílčí rozhraní Rozhraní kolekce .
Konstruktory ArrayList v Javě
Java poskytuje více konstruktorů pro vytvoření ArrayList na základě různých požadavků:
1. ArrayList()
Vytvoří prázdný ArrayList s výchozí počáteční kapacitou.
ArrayList
arr = nový ArrayList<>();
2. ArrayList arr = nový ArrayList<>()
Vytvoří ArrayList inicializovaný prvky ze zadané kolekce.
ArrayList
arr = nový ArrayList<>(sbírka);
3. ArrayList(int initialCapacity)
Tento konstruktor se používá k sestavení seznamu polí se zadanou počáteční kapacitou.
ArrayList
arr = nový ArrayList<>(20);
Operace ArrayList
Nyní pomocí konstruktorů máme ArrayList pro další operace, jako je InsertionDeletion a Updation prvků v ArrayList.
pseudokód javaJava
import java.util.*; class GFG{ public static void main(String args[]){ // Creating an Array of string type ArrayList<String> al = new ArrayList<>(); // 1. Adding elements to ArrayList at the end al.add('Geeks'); al.add('Geeks'); System.out.println('Original List : '+al); // Adding Elements at the specific index al.add(1 'For'); System.out.println('After Adding element at index 1 : '+ al); // 2. Removing Element using index al.remove(0); System.out.println('Element removed from index 0 : '+ al); // Removing Element using the value al.remove('Geeks'); System.out.println('Element Geeks removed : '+ al); // 3. Updating value at index 0 al.set(0 'GFG'); System.out.println('List after updation of value : '+al); } }
Výstup
Original List : [Geeks Geeks] After Adding element at index 1 : [Geeks For Geeks] Element removed from index 0 : [For Geeks] Element Geeks removed : [For] List after updation of value : [GFG]
Složitost Java ArrayList
Operace | Časová složitost | Vesmírná složitost |
|---|---|---|
Vložení prvku do ArrayList | O(1) | NA) |
Odebrání prvku z ArrayList | NA) | O(1) |
Procházení prvků v ArrayList | NA) římské číslice 1100 | NA) |
Nahrazení prvků v ArrayList | O(1) | O(1) |
Metody Java ArrayList
| Metoda | Popis |
|---|---|
| add(int index Object element) | Tato metoda se používá k vložení určitého prvku na konkrétní index pozice v seznamu. |
| přidat (objekt o) | Tato metoda se používá k připojení určitého prvku na konec seznamu. |
| addAll(kolekce C) | Tato metoda se používá k připojení všech prvků z konkrétní kolekce na konec uvedeného seznamu v takovém pořadí, aby byly hodnoty vráceny iterátorem zadané kolekce. |
| addAll(int index kolekce C) | Slouží k vložení všech prvků začínajících na zadané pozici z konkrétní kolekce do uvedeného seznamu. |
| jasný() | Tato metoda se používá k odstranění všech prvků z libovolného seznamu. |
| klon() | Tato metoda se používá k vrácení mělké kopie ArrayList v Javě. |
| obsahuje (Objekt o) | Vrátí hodnotu true, pokud tento seznam obsahuje zadaný prvek. |
| sureCapacity (int minCapacity) | Zvýší kapacitu této instance ArrayList, je-li to nutné, aby bylo zajištěno, že může obsahovat alespoň počet prvků určený argumentem minimální kapacity. |
| pro každého (spotřebitele super E>akce) | Provede danou akci pro každý prvek Iterable, dokud nejsou zpracovány všechny prvky nebo akce nevyvolá výjimku. |
| get(int index) | Vrátí prvek na zadané pozici v tomto seznamu. |
| indexOf(Objekt O) | Index prvního výskytu určitého prvku je buď vrácen, nebo -1 v případě, že prvek není v seznamu. |
| isEmpty() | Vrátí hodnotu true, pokud tento seznam neobsahuje žádné prvky. |
| lastIndexOf(Object O) | Index posledního výskytu určitého prvku je buď vrácen nebo -1 v případě, že prvek není v seznamu. |
| listIterator() | Vrátí iterátor seznamu nad prvky v tomto seznamu (ve správném pořadí). |
| listIterator(int index) | Vrátí iterátor seznamu nad prvky v tomto seznamu (ve správném pořadí) počínaje zadanou pozicí v seznamu. |
| odstranit (int index) | Odebere prvek na zadané pozici v tomto seznamu. |
| odstranit (objekt o) | Odebere první výskyt zadaného prvku z tohoto seznamu, pokud je přítomen. |
| odstranit vše (kolekce c) | Odebere z tohoto seznamu všechny jeho prvky, které jsou obsaženy v zadané kolekci. |
| removeIf (filtr predikátu) | Odebere všechny prvky této kolekce, které splňují daný predikát. |
| removeRange(int fromIndex int toIndex) | Odebere z tohoto seznamu všechny prvky, jejichž index je v rozmezí od indexu včetně do indexu bez indexu. |
| zachovat vše(kolekce>C) | Zachová pouze prvky v tomto seznamu, které jsou obsaženy v zadané kolekci. |
| set(int index E prvek) | Nahradí prvek na zadané pozici v tomto seznamu zadaným prvkem. |
| velikost() | Vrátí počet prvků v tomto seznamu. |
| rozdělovač() | Vytvoří rozbočovač s pozdní vazbou a rychlým selháním nad prvky v tomto seznamu. |
| subList(int fromIndex int toIndex) | Vrátí pohled na část tohoto seznamu mezi zadaným fromIndex včetně a toIndex exclusive. |
| toArray() | Tato metoda se používá k vrácení pole obsahujícího všechny prvky v seznamu ve správném pořadí. |
| toArray(Object[] O) | Používá se také k vrácení pole obsahujícího všechny prvky v tomto seznamu ve správném pořadí, stejně jako předchozí metoda. |
| trimToSize() | Tato metoda se používá k oříznutí kapacity instance ArrayList na aktuální velikost seznamu. |