Cum se utilizează un Java ArrayList

Cum se utilizează un Java ArrayList / Programare

O Java ArrayList este o matrice de dimensiune generală care poate fi redimensionată. Oferă cele mai multe dintre facilitățile care se așteaptă în general din rețele în alte limbi. Printre acestea se numără: accesarea elementelor utilizând un index, adăugarea, eliminarea și actualizarea elementelor, redimensionarea dinamică, iterarea elementelor etc. Cele mai multe dintre aceste operații au fost special modificate pentru utilizare generală.

Există și câteva alte tipuri de “matrice” (clase care implementează Listă interfață, să fie tehnică) care sunt destinate unor scopuri speciale. Acestea includ:

  • LinkedList sprijină introducerea și eliminarea rapidă la indicii intermediari.
  • Vector este similar cu un ArrayList dar este sincronizat și este potrivit în locul unui ArrayList pentru aplicații multi-filetate.
  • Grămadă sprijină operațiile de imitare a unei liste ultima în prima. Extinde Vector și, prin urmare, este sincronizată.

Aceste clase speciale se află în afara domeniului de aplicare al acestui articol. Cu toate acestea, veți învăța cum să configurați și să utilizați un Java ArrayList cu scop general.

Crearea unui ArrayList

Crearea unui ArrayList este simplu. Un gol ArrayList poate fi creat folosind constructorul fără argumente. Aici vom crea un arrailist gol pentru ținerea șirurilor.

ArrayList alist = noul ArrayList(); 

Dacă se întâmplă să știți câte elemente va conține lista de matrice, puteți specifica capacitatea inițială. Această capacitate inițială este doar o sugestie pentru alocarea memoriei - arraistul nu este limitat la menținerea numărului specificat de articole. Dacă știți și specificați capacitatea inițială, voi ar putea obține o ușoară îmbunătățire a performanței.

ArrayList alist = noul ArrayList(20); 

Populația unui ArrayList

Adăugarea de elemente la sfârșit

Populația unui arrayist este destul de ușoară. Folosiți doar adăuga() pentru a adăuga un singur element la sfârșitul arraylistului. Iată un exemplu:

ArrayList alist = noul ArrayList(); alist.add ( "mar"); alist.add ( "banana"); alist.add ( "cantalup"); alist.add ( "orange"); System.out.println (alist); # imprimări [măr, banană, pepene galben, portocaliu] 

Pentru a afla câte elemente există în arrailist, utilizați metoda mărimea().

System.out.println ("Numărul de elemente din arrailist:" + alist.size ()); # prints Numărul de elemente din arraylist: 4

Adăugarea de elemente la un index specificat

Doriți să adăugați un element la un indice arbitrar? Specificați indexul ca primul argument și elementul este adăugat la acel index:

alist.add (3, "struguri"); System.out.println (alist); # printuri [măr, banană, pepene galben, struguri, portocaliu] 

Adăugarea unui pachet de elemente

Puteți adăuga elemente din orice colecție și în ierarhia colecțiilor Java. Un ArrayList este un tip specific numit Listă. Iată o modalitate de a construi a Listă dintr - o grămadă de articole (utilizând Arrays.asList ()) și adăugați-l la un ArrayList.

Listă elemente = Arrays.asList ("pere", "cireș"); alist.addAll (articole); System.out.println (alist); # printuri [măr, banană, pepene galben, struguri, portocale, pere, cireșe] 

Desigur, puteți specifica un index ca primul argument aici pentru a adăuga elementele care încep de la acel index.

Accesarea elementelor

Odată ce articolele au fost adăugate la arrailist, cum le putem accesa din nou?

Accesarea cu un index

Dacă cunoașteți indicele elementului, puteți utiliza funcția obține() de recuperare a elementului la acel index.

Element șir = alist.get (2); System.out.println ("Elementul la indexul 2 este:" + element); # prints Item la indexul 2 este: cantalupă 

Gasind obiecte

Ce se întâmplă dacă nu cunoașteți indicele elementului? Poți să folosești Index de() pentru a verifica dacă elementul este prezent în matrice și pentru a prelua elementul folosind indexul returnat.

System.out.println (alist); int index = alist.indexOf ("portocaliu"); dacă (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 

Ce se întâmplă dacă elementul nu este prezent în arraylist? Index de() metoda returnează -1 atunci când elementul nu este găsit.

index = alist.indexOf ("struguri"); dacă (index < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found 

Iterând într-un ArrayList

Desigur, cea mai comună utilizare a unui ArrayList este iterând asupra elementelor. Acest lucru poate fi realizat în mai multe moduri. Arătăm câteva aici simple.

Aici este cel mai simplu mod de iterare a unui arrailist și extragerea articolelor pentru un fel de prelucrare.

pentru (fructe de coarde: alist) System.out.println ("găsit fructul" "+ fruct +" \ "");  # imprimări S-au găsit fructe "măr" Au fost găsite fructe "banane" S-au găsit fructe "pepene galben" S-au găsit fructe "struguri" 

Acest cod folosește Java Enhanced For-Loop care a fost introdus în Java 1.5. Înainte de aceasta, ați putea itera itemele cu un iterator. Un iterator este, de asemenea, folosit atunci când aveți nevoie elimina elemente în timpul procesului de iterație, după cum ilustrează exemplul de mai jos. (Rețineți că facem o copie a arraylistului și lucrăm la copie.)

ArrayList blist = noul ArrayList(o listă); pentru (Iterator iter = blist.iterator (); iter.hasNext ();) Fructe de coarde = iter.next (); dacă (fruit.startsWith ("c")) iter.remove (); altfel System.out.println ("Păstrarea \" "+ fructe +" \ "");  # printuri Păstrarea "măr" Păstrarea "bananei" Păstrarea "strugurilor" Păstrarea "portocaliu" Păstrarea "pere" 

Înlocuirea elementelor

Odată ce articolele sunt adăugate, avem nevoie de o modalitate de a înlocui elementele nedorite. Acest lucru se poate face folosind a stabilit() cu un index.

alist.set (5, "ananas"); System.out.println (alist); # printuri [măr, banane, pepene galben, struguri, portocale, ananas, cireșe] 

Eliminarea elementelor

Să vedem acum cum putem elimina elementele dintr-un arrayist. Dacă știți indicele elementului (probabil că ați folosit Index de() descrise mai sus), puteți utiliza funcția elimina() cu indexul. Returnează elementul eliminat.

String fruit = alist.remove (2); System.out.println ("Element eliminat la 2:" + fructe); # prints Element eliminat la 2: pepene galben 

De asemenea, puteți specifica elementul pentru a elimina primul apariția elementului din listă. Metoda revine Adevărat dacă elementul a fost găsit și eliminat.

fructe = "struguri"; System.out.println ("Eliminați" + fruct + "din listă" + alist.remove (fruct)); # prints Înlăturați strugurii din listă? Adevărat 

Cum folosiți ArrayList în proiectele dvs. și în ce probleme ați întâmpinat? Spuneți-ne în comentariile de mai jos.

Explorați mai multe despre: Java.