CodeGym /Blog Java /Aleatoriu /Conversia Array în ArrayList în Java
John Squirrels
Nivel
San Francisco

Conversia Array în ArrayList în Java

Publicat în grup
Bună! În lecția de astăzi, vom vorbi despre Cum să inițializați o matrice în Java și Cum să convertiți o matrice într-o listă de matrice. Matricele sunt o extensie a clasei Container în Java și pot fi utile ca modalitate de a păstra temporar un set de tipuri de date primitive atunci când cantitatea de date este cunoscută în mod specific. Dar tablourile sunt statice atunci când sunt create, ceea ce înseamnă că atunci când creați unul, nu puteți modifica numărul de elemente pe care le deține. Ar trebui să vă amintiți cum să inițializați o matrice în java; arata cam asa:

datatype[] isArray;
Unde tipul de date este orice tip de date primitiv precum int, float, long sau chiar String. De asemenea, puteți plasa parantezele după declarație astfel:

datatype isArray[];
Deci, cum luăm această matrice statică cu un număr stabilit de elemente și o convertim într-o ArrayList? Ei bine, mai întâi, să ne uităm la ce este o ArrayList.

ArrayList

Un ArrayList poate avea un nume similar cu un Array, dar este tratat complet diferit. Asta pentru că un ArrayList nu extinde clasa Container, ci extinde clasa List. Și asta înseamnă că totul este tratat diferit. În primul rând, pentru că este o Listă, o poți manipula diferit. Puteți crește sau micșora dimensiunea ArrayList folosind add(element) , care plasează elementul la sfârșitul Listei și mărește dimensiunea cu una dacă este necesar. Sau puteți folosi trimToSize()care elimină orice indici goli la sfârșit și decupează ArrayList la dimensiunea curentă. Deci, puteți vedea că există câteva avantaje în utilizarea unui ArrayList în loc de doar a unei matrice. În continuare, vă vom arăta două metode de a converti dintr-un Array într-o ArrayList și cum să vă întoarceți, dacă este necesar.

Trecerea de la Array la ArrayList și ArrayList la Array în Java

Deci, să presupunem că ați scris un program pentru a ține un inventar al câte piulițe și șuruburi are compania dvs. la îndemână pentru repararea copacilor de pisici. De ani de zile, ai nevoie doar de 30 de tipuri diferite de ele, așa că a fost ușor să folosești doar o matrice pentru a ține evidența. Dar acum aveți un client nou care vă cere să stocați încă 5 tipuri. Cum puteți să vă schimbați programul și să vă păstrați toate datele ȘI să vă preveniți să mai faceți acest lucru atunci când alegeți un alt client? Asta e corect! O ArrayList! Deci, cum convertești un Array Java într-un ArrayList? Există trei metode. Folosind metoda .asList() tablourile Java au un instrument grozav pe care îl puteți vedea când vă uitați la API-ul numit .asList() . Așa că ai putea scrie în asta:

boltInventory.asList(bolts);
Problema cu această metodă este că nu creează un ArrayList adevărat. Ceea ce face este să creeze o listă cu dimensiune fixă ​​și neschimbată. Deci încă nu puteți modifica dimensiunea într-un mod dinamic. Încercarea de a adăuga sau elimina elemente va provoca o excepție. Așa că, deși acest lucru are utilizările sale, nu este o adevărată conversie. Dar putem folosi asta. Utilizarea .asList() ca argument Aceasta este a doua modalitate de a converti o matrice în listă în Java. Deoarece metoda .asList() creează o Listă, o putem folosi pentru a trece o referință la ArrayList actual. Iată cum să inițializați un ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Aceasta va crea un ArrayList care are zece celule goale. Cu toate acestea, () de la sfârșit poate fi folosit pentru a trece un argument pentru a umple ArrayList. Deci, combinând cu metoda .asList , aveți:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Aceasta trece Lista creată de metoda .asList() în ArrayList, așa că acum o puteți manipula dinamic după cum aveți nevoie. Utilizarea metodei Collections.addAll() O altă modalitate de a converti un Array într-o ArrayList în Java este utilizarea acestei metode. Acesta transmite conținutul Array la ArrayList. Sintaxa generică pentru această metodă este:

Collections.addAll(c, T);
Unde c este destinația și T este ceea ce este trecut. Deci, pentru exemplul nostru, sintaxa ar arăta astfel:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Acest lucru va trece întregul conținut al șuruburilor Array în noua ArrayList. Conversia unui ArrayList într-un Array Poate fi un moment când trebuie să convertiți o ArrayList într-un Array în Java. Dacă faceți acest lucru, ArrayList are o metodă .toArray(a) , unde a este destinația. Deci, pentru exemplul nostru, sintaxa ar fi:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Când schimbați o listă în matrice în Java, astfel, creați o copie profundă. Adică, toate referințele la Array sunt diferite de referințele la ArrayList. Deci, puteți manipula datele din Array fără a modifica datele stocate în ArrayList. Este util să convertiți o listă java într-o matrice atunci când trebuie să testați datele.

Concluzie

Matricele sunt foarte utile pentru accesul rapid și manipularea rapidă a seturilor de date mai mici, dar incapacitatea de a le schimba dimensiunea înseamnă că își pierd rapid eficiența pentru utilizare pe termen lung. O ArrayList vă oferă această flexibilitate și abilitatea de a introduce și elimina noduri după cum este necesar. A învăța cum să convertiți o matrice Java într-o listă va îmbunătăți eficiența generală a programelor dvs. și, de asemenea, va îmbunătăți durata de execuție a acestora.
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION