ArrayList je součástí sbírkový rámec a je přítomen v balíčku java.util. Poskytuje nám dynamická pole v Javě. Může to být pomalejší než standardní pole, ale může být užitečné v programech, kde je potřeba spousta manipulace s polem. Tato třída se nachází v java.util balík.
Se zavedením a upgrady ve verzích Java jsou k dispozici novější metody, jako bychom z Java8 viděli, že vnímavé výrazy lambda a koncepty proudů nebyly dříve dostupné, protože byly představeny ve verzi Java8.
Metody:
wumpus svět
- Použití smyček for
- Použití while
- Použití pro každou smyčku
- Použití Iterátoru
- Použití výrazů Lambda (pouze po Java8)
- Použití rozhraní Enumeration
Pojďme diskutovat o těchto metodách, z nichž hned můžeme vnímat, že výchozí tři metody jsou prostě naivní přístupy a další metody s sebou nesou určitou optimalizaci. Pamatujte, že zatímco prvky procházení jsou menší, obecně máme tendenci opakovat naivní přístup, jinak pokud je velikost prvků, které mají být vloženy, velká, používáme optimální přístupy. Pojďme rychle zabalit každý z výše uvedených přístupů.
Metoda 1: Použití smyčky for
Jáva
// Java program to iterate over an ArrayList // Using for loop // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating and initializing the ArrayList // Declaring object of integer type List čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Iterace pomocí cyklu for for (int i = 0; i< numbers.size(); i++) // Printing and display the elements in ArrayList System.out.print(numbers.get(i) + ' '); } }> Výstup
1 2 3 4 5 6 7 8>
Metoda 2: Použití while smyčky
Jáva // Java Program to Illustrate ArrayList // Using While Loop // Importing required classes import java.util.ArrayList ; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating and initializing the ArrayList // Declaring object of integer type ArrayList al = nový ArrayList (); // Přidání prvků do ArrayList // pomocí metody add() al.add(3); al.add(1); al.add(7); al.add(20); al.add(5); // Krok 1: Nastavení a inicializace proměnné // podle syntaxe cyklu while // Počáteční deklarace a nastavení int val = 0; // Krok 2: Podmínka // Dokud nebude naše proměnná čítače menší než velikost // ArrayList while (al.size()> val) { // Tisk prvku, který platí výše // podmínka true System.out.println(al .get(val)); // Krok 3: Ukončení podmínky zvýšením // našeho čítače v každé iteraci val++ ; } } }> Výstup
3 1 7 20 5>
Metoda 3: Použití pro každou smyčku
Jáva // Java Program to Iterate over Arraylist // using for Each loop // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList List čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Pro každou smyčku pro iteraci ArrayList for (Integer i : čísla) // Tisk prvků ArrayList System.out.print(i + ' '); } }> Výstup
1 2 3 4 5 6 7 8>
Metoda 4: Použití Iterátoru
Jáva
// Java program to iterate over an ArrayList // Using Iterator // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList List čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Iterace ArrayList pomocí Iterator Iterator it = numbers.iterator(); // Drží hodnotu true, dokud nezůstane jediný prvek // v seznamu while (it.hasNext()) // Vytiskne prvky ArrayList System.out.print(it.next() + ' '); } }> Výstup
1 2 3 4 5 6 7 8>
Metoda 5: Použití výrazů lambda
Jáva // Java program to iterate over an arraylist // using Iterator in Java8 with Lambda Expression // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing ArrayList // Custom input elements List čísla = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); // Tisk čísel pomocí lambda výrazů // byl zaveden později v java8 numbers.forEach(number->System.out.println(number)); } }> Výstup
1 2 3 4 5 6 7 8>
Metoda 6: Použití rozhraní Enumeration
Jáva // Java Program to Iterate over ArrayList elements // Using Enumeration // Importing required classes import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating an ArrayList ArrayList al = nový ArrayList (); // Přidání prvků do ArrayList al.add(34); al.add(12); al.add(34); al.add(23); al.add(54); // Získání objektu výčtu Enumeration e = Collections.enumeration(al); // Dokud nebudou existovat prvky while (e.hasMoreElements()) // Tisk prvků pomocí metody nextElement() System.out.println(e.nextElement()); } }> Výstup
34 12 34 23 54>
Nyní je to další doplněk k článku, protože jsme skončili s diskusí o všech metodách, které lze použít k iteraci prvků. Doposud jsme procházeli pouze vstupními prvky a neviděli jsme procházení, co když si budeme hrát s prvky, tak zvažujeme
Příklad
Jáva // Java program to demonstrate Working of // Iterator.remove() on Arraylist // Importing utility classes import java.util.List; import java.util.ArrayList; import java.util.Iterator; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating a List with referenceto ArrayList List al = nový ArrayList (); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // Odstraňte prvky menší než 10 pomocí // Iterator.remove() Iterator itr = al.iterator(); while (itr.hasNext()) { int x = (Integer)itr.next(); pokud (x< 10) itr.remove(); } System.out.println('Modified ArrayList : ' + al); } }> Výstup
Modified ArrayList : [10, 20, 30]>
Odebírání položek během průchodu: Při iteraci prvků se nedoporučuje používat ArrayList.remove(). To může vést k ConcurrentModificationException (Odkazují na tento pro ukázkový program s touto výjimkou). Při iteraci přes prvky se doporučuje použít Iterator.remove() metoda.