logo

Diferența dintre Array și ArrayList

În Java, matrice și ArrayList sunt binecunoscutele structuri de date. O matrice este o funcționalitate de bază oferită de Java, în timp ce ArrayList este o clasă de cadru Java Collections. Apartine java.util pachet.

Matrice Java

Un matrice este un obiect creat dinamic. Acesta servește ca un container care deține un număr constant de valori de același tip. Are o locație de memorie contiguă. Odată ce o matrice este creată, nu-i putem modifica dimensiunea. Putem crea o matrice folosind următoarea instrucțiune:

 int array[]=new int[size]; 

Declarația de mai sus creează o matrice de dimensiunea specificată. Când încercăm să adăugăm mai mult decât dimensiunea lui, aruncă Indicele matricei este în afara limitelor . De exemplu:

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

Clasa Java ArrayList

În Java, ArrayList este o clasă de cadru de colecții. Se implementează Listă, Colecție, Iterabil, Clonabil, Serializabil , și Acces aleatoriu interfețe. Se extinde AbstractList clasă.

Putem crea o instanță a ArrayList utilizând următoarea instrucțiune:

 ArrayList arrayList=new ArrayList(); 

ArrayList este susținut intern de matricea în Java. Operația de redimensionare din ArrayList încetinește performanța deoarece implică o nouă matrice și copierea conținutului dintr-o matrice veche într-o matrice nouă. Apelează metoda implementată nativă System.arraycopy (sec, srcPos, dest, destPos, lungime) .

Nu putem stoca tipul primitiv în ArrayList. Deci, stochează doar obiecte. Convertește automat tipul primitiv în obiect. De exemplu, am creat un obiect ArrayList,

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

JVM-ul îl convertește în obiect Integer prin auto-boxing.

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

Asemănări

  • Array și ArrayList ambele sunt folosite pentru stocarea elementelor.
  • Ambele Array și ArrayList pot stoca valori nule.
  • Ele pot avea valori duplicate.
  • Nu păstrează ordinea elementelor.

Următorul tabel descrie diferențele cheie dintre matrice și ArrayList:

Bază Matrice ArrayList
Definiție Un matrice este un obiect creat dinamic. Acesta servește ca un container care deține un număr constant de valori de același tip. Are o locație de memorie contiguă. The ArrayList este o clasă de Java Colecții cadru. Conține clase populare precum Vector, HashTable , și HashMap .
Static/Dinamic Array este static in marime. ArrayList este dinamic in marime.
Redimensionabil O matrice este a lungime fixă structură de date. ArrayList este un de lungime variabilă structură de date. Poate fi redimensionat singur atunci când este necesar.
Inițializare Este obligatoriu să furnizați dimensiunea unei matrice în timp ce o inițializați direct sau indirect. Putem crea o instanță a ArrayList fără a specifica dimensiunea acesteia. Java creează ArrayList cu dimensiunea implicită.
Performanţă Funcționează rapid în comparație cu ArrayList din cauza dimensiunii fixe. ArrayList este susținut intern de matricea în Java. Operația de redimensionare din ArrayList încetinește performanța.
Tipul primitiv/ generic O matrice le poate stoca pe ambele obiecte și primitivi tip. Nu putem stoca primitiv tastați în ArrayList. Convertește automat tipul primitiv în obiect.
Iterarea valorilor Folosim pentru buclă sau pentru fiecare buclă pentru a repeta peste o matrice. Folosim un iterator pentru a repeta peste ArrayList.
Tip de siguranță Nu putem folosi generice împreună cu matrice, deoarece nu este un tip convertibil de matrice. ArrayList ne permite doar să stocăm generic/ tip, de aceea este sigur de tip.
Lungime Array oferă a lungime variabilă care denotă lungimea unui tablou. ArrayList oferă mărimea() metoda pentru a determina dimensiunea ArrayList.
Adăugarea de elemente Putem adăuga elemente într-o matrice utilizând misiune operator. Java oferă adăuga() metoda de a adăuga elemente în ArrayList.
Single/ Multi-Dimensional Array poate fi multidimensională . ArrayList este întotdeauna unidimensional .

Exemplu de matrice în Java

În exemplul următor, am creat pur și simplu o matrice de lungime patru.

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

Exemplu de ArrayList în Java

În exemplul următor, am creat o instanță a ArrayList și am efectuat o iterație peste ArrayList.

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

Ieșire:

powershell mai mic sau egal cu
 12.4 34.6 56.8 78.9