Jak používat Java ArrayList

Jak používat Java ArrayList

Do Javy ArrayList je univerzální pole s možností změny velikosti. Poskytuje většinu zařízení obecně očekávaných od polí v jiných jazycích. Patří sem: přístup k prvkům pomocí indexu, přidávání, odebírání a aktualizace prvků, dynamické změny velikosti, opakování prvků atd. Většina těchto operací byla speciálně upravena pro obecné použití.





jak starý musíte být, abyste měli účet paypal

Existuje několik dalších typů „polí“ (třídy, které implementují Seznam technické rozhraní), které jsou určeny pro zvláštní účely. Tyto zahrnují:





  • Spojový seznam podporuje rychlé vkládání a vyjímání v mezilehlých indexech.
  • Vektor je podobný jako ArrayList ale je synchronizovaný a je vhodný místo ArrayList pro vícevláknové aplikace.
  • Zásobník podporuje operace pro napodobení seznamu poslední v první. Prodlužuje Vektor a proto je synchronizován.

Tyto speciální třídy jsou mimo rozsah tohoto článku. Naučíte se však, jak nastavit a používat obecný Java ArrayList.





Vytvoření seznamu ArrayList

Vytvoření ArrayList je jednoduchý. Prázdný ArrayList lze vytvořit pomocí konstruktoru bez argumentů. Zde vytvoříme prázdný arraylist pro držení řetězců.

ArrayList alist = new ArrayList();

Pokud náhodou víte, kolik položek bude váš seznam polí obsahovat, můžete určit počáteční kapacitu. Tato počáteční kapacita je pouze náznakem pro přidělení paměti - arraylist není omezen na držení zadaného počtu položek. Pokud znáte a specifikujete počáteční kapacitu, vy mohl dosáhnout mírného zlepšení výkonu.



ArrayList alist = new ArrayList(20);

Vyplnění seznamu polí

Přidání položek na konec

Vyplnění seznamu hráčů je docela snadné. Stačí použít přidat() metoda přidání jedné položky na konec seznamu. Zde je příklad:

ArrayList alist = new ArrayList();
alist.add('apple');
alist.add('banana');
alist.add('cantaloupe');
alist.add('orange');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]

Chcete -li zjistit, kolik položek je v seznamu, použijte tuto metodu velikost() .





System.out.println('Number of elements in the arraylist: ' + alist.size());
# prints
Number of elements in the arraylist: 4

Přidávání položek na zadaný index

Chcete přidat položku do libovolného indexu? Jako první argument zadejte index a položka se přidá do tohoto indexu:

alist.add(3, 'grapes');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange]

Přidání svazku položek

Do hierarchie kolekcí Java můžete také přidat položky z jakékoli kolekce. An ArrayList je specifický typ s názvem Seznam . Zde je způsob, jak sestrojit a Seznam ze spousty položek (pomocí Arrays.asList () ) a přidejte jej do souboru ArrayList .





List items = Arrays.asList('pear', 'cherry');
alist.addAll(items);
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]

Samozřejmě zde můžete zadat index jako první argument pro přidání položek počínaje tímto indexem.

Přístup k položkám

Jakmile jsou položky přidány do seznamu, jak k nim znovu přistupujeme?

Přístup pomocí rejstříku

Pokud znáte rejstřík položky, můžete použít dostat() metoda k načtení prvku v tomto indexu.

ikona napájení se na hlavním panelu Windows 10 nezobrazuje
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Hledání položek

Co když neznáte rejstřík položky? Můžeš použít indexOf () zkontrolovat, zda je položka v poli přítomna, a načíst položku pomocí vráceného indexu.

System.out.println(alist);
int index = alist.indexOf('orange');
if ( index <0 )
System.out.println('Item 'orange' not found');
else
System.out.println('Item 'orange' found at index ' + index);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]
Item 'orange' found at index 4

Co když položka není v seznamu hráčů? The indexOf () metoda vrátí -1, pokud není položka nalezena.

index = alist.indexOf('grape');
if ( index <0 )
System.out.println('Item 'grape' not found');
else
System.out.println('Item 'grape' found at index ' + index);
# prints
Item 'grape' not found

Iterace nad seznamem polí

Samozřejmě, nejběžnější použití souboru ArrayList iteruje nad prvky. Toho lze dosáhnout několika způsoby. Ukážeme zde několik jednoduchých.

Zde je nejjednodušší způsob iterace přes arraylistu a extrahování položek pro nějaký druh zpracování.

for (String fruit : alist) {
System.out.println('Found fruit '' + fruit + ''');
}
# prints
Found fruit 'apple'
Found fruit 'banana'
Found fruit 'cantaloupe'
Found fruit 'grapes'
Found fruit 'orange'
Found fruit 'pear'
Found fruit 'cherry'

Tento kód používá technologii Java Enhanced For-Loop, která byla zavedena v jazyce Java 1.5. Předtím jste mohli položky iterovat iterátorem. Iterátor se také používá, když potřebujete odstranit prvky během procesu iterace, jak ukazuje příklad níže. (Všimněte si, že vytvoříme kopii seznamu hráčů a pracujeme na kopii.)

ArrayList blist = new ArrayList(alist);
for (Iterator iter = blist.iterator() ; iter.hasNext() ; ) {
String fruit = iter.next();
if ( fruit.startsWith('c') )
iter.remove();
else
System.out.println('Keeping '' + fruit + ''');
}
# prints
Keeping 'apple'
Keeping 'banana'
Keeping 'grapes'
Keeping 'orange'
Keeping 'pear'

Výměna položek

Jakmile jsou položky přidány, potřebujeme způsob, jak nahradit nechtěné položky. To lze provést pomocí soubor() metoda s indexem.

alist.set(5, 'pineapple');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pineapple, cherry]

Odebírání položek

Nyní se podívejme, jak můžeme odebrat položky z arraylistu. Pokud znáte rejstřík položky (možná jste použili indexOf () popsáno výše), můžete použít odstranit() metoda s indexem. Vrátí odebraný prvek.

String fruit = alist.remove(2);
System.out.println('Removed element at 2: ' + fruit);
# prints
Removed element at 2: cantaloupe

Můžete také určit prvek, který chcete odebrat za prvé výskyt prvku v seznamu. Metoda se vrací skutečný pokud byl prvek nalezen a odstraněn.

jak se zbavit 100 využití disku
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Jak používáte ArrayList ve svých projektech a s jakými zvláštními problémy jste se potýkali? Dejte nám prosím vědět v níže uvedených komentářích.

Podíl Podíl tweet E-mailem Jak získat přístup k integrované úrovni bublin Google v systému Android

Pokud jste se někdy potřebovali ujistit, že je něco v malém, můžete nyní v několika sekundách získat úroveň bubliny v telefonu.

Číst dále
Související témata
  • Programování
  • Jáva
O autorovi Jay Sridhar(17 článků zveřejněno) Více od Jaye Sridhar

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru