logo

Diferența dintre Listă și ArrayList

Colecția Java oferă o arhitectură pentru a face față grupului de obiecte. Colecția înseamnă o singură unitate de obiecte. Ne permite să stocăm și să manipulăm grupul de obiecte ca o singură unitate.

Putem efectua cu ușurință multe operațiuni, cum ar fi căutarea, sortarea, inserarea, ștergerea și manipularea unui grup de obiecte folosind cadrul de colecție.

Cadrul Java Collection oferă mai multe interfețe și clase. Interfețele conțin A stabilit, Listă , Coadă, Deque , iar clasele conțin ArrayList , Vector , LinkedList , HashSet , TreeSet , LinkedHashSet , și PriorityQueue .

cum se execută un script

În această secțiune, vom diferenția două elemente ale Cadrul de colectare , care este Listă și ArrayList. Lista este o interfață, iar ArrayList este o clasă.

Diferența dintre Listă și ArrayList

Interfață Listă

Lista este o interfață copil a cadrului Collection care ne permite să menținem colecția ordonată a obiectelor. Putem stoca valorile duplicate și elementele nule folosind Listă. Oferă o metodă bazată pe index pentru a efectua operațiunile de inserare, ștergere, căutare, actualizare pe obiecte.

Interfața List are loc în pachetul java.util. Implementează clasele ArrayList, LinkedList, Stack și Vector. Este, de asemenea, o bază de clase ListIterator folosind care putem itera Lista în direcții înainte și înapoi.

Interfața Listă oferă acces pozițional și inserarea elementelor și păstrează ordinea de inserare. Instanța Listei poate fi creată folosind clasele de implementare.

Implementarea listei:

Putem implementa interfața List folosind ArrayList, LinkedList, Vector și Stiva de clase .

Pentru a instanția interfața Listă, putem folosi următoarele sintaxe:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Luați în considerare exemplul de mai jos de Listă:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Ieșire:

căutarea contradictorie
 [Hello, Java, Tpoint] 

Clasa ArrayList

Clasa ArrayList folosește o matrice dinamică pentru stocarea elementelor. Clasa ArrayList acționează ca o matrice, dar nu există o limită de dimensiune în ea. Putem adăuga sau elimina elementele oricând dorim. Putem stoca elementul duplicat folosind clasa ArrayList. Gestionează ordinea de inserare pe plan intern.

Clasa ArrayList este mult mai flexibilă decât matricea tradițională. Implementează interfața Listă pentru a utiliza toate metodele List Interface. Are loc în Java pachet .util.

Clasa ArrayList moștenește clasa AbstractList și implementează Interfața Listă. Elementele acestuia pot fi accesate aleatoriu. Nu poate fi folosit pentru tipuri primitive precum int, char etc.; pentru aceste tipuri de date, avem nevoie de o clasă wrapper.

Implementarea ArrayList:

O clasă ArrayList moștenește toate metodele clasei AbstractList și implementează interfața List.

Clasa ArrayList poate fi declarată după cum urmează:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList poate fi definită după cum urmează:

 ArrayList myList = new ArrayList(); 

Luați în considerare exemplul de mai jos de ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Ieșire:

 [Hello, Java, Tpoint] 

Câteva diferențe cheie între interfața Listă și clasa ArrayList

Unele diferențe majore între Listă și ArrayList sunt următoarele:

  • Una dintre diferențele majore este că List este o interfață și ArrayList este o clasă din cadrul Java Collection.
  • The List extinde cadrul de colectare , comparativ ArrayList extinde clasa AbstractList și implementează interfața List .
  • Spațiul de nume pentru Listă și ArrayList este System.Collection.Generic și, respectiv, System Collection.
  • Lista stochează elemente într-o secvență și sunt identificate prin numărul de index individual. Comparativ, ArrayList stochează elementele într-o matrice dinamică; poate crește atunci când este necesar.

Când definim Lista după cum urmează:

 List myList = new ArrayList(); 

Înseamnă că putem apela doar metodele și membrii de referință din interfața Listă.

Dacă definim ArrayList după cum urmează:

mysql listează toți utilizatorii
 ArrayList myList = new ArrayList(); 

Înseamnă că putem invoca metodele disponibile în ArrayList și folosim membrii săi în plus față de Listă.

Luați în considerare tabelul de mai jos pentru câteva comparații de cap între Listă și ArrayList:

Baza de comparație Listă ArrayList
General Este o interfață. Este clasa.
Muncă Acesta creează o listă de obiecte care pot fi accesate prin numărul de index individual. Acesta creează o matrice dinamică care poate fi extinsă atunci când este necesar.
Implementarea List list1= new ArrayList(); ArrayList myList = new ArrayList();
Extinde/Implementează Extinde cadrul de colectare. Extinde clasa AbstractList și implementează interfața List.
Pachetul de bază java.util java.util
Spațiu de nume Sistem.Colecție.Generic Sistem.Colectie
Performanţă Oferă o manipulare mai rapidă a obiectelor. Oferă manipulare lentă asupra obiectelor în comparație cu Listă.
Instanciarea Nu poate fi instanțiat. Poate fi instanțiat

Concluzie

Lista este o interfață, iar ArrayList este o clasă a cadrului Java Collection. Lista creează o matrice statică, iar ArrayList creează o matrice dinamică pentru stocarea obiectelor. Deci Lista nu poate fi extinsă odată ce este creată, dar folosind ArrayList, putem extinde matricea atunci când este necesar.

Este mai bine să utilizați Interfața Listă dacă doriți să profitați de polimorfism. În viitor, dacă ni se cere să implementăm interfața, nu va fi nevoie să schimbăm programul.