logo

Differenza tra List e ArrayList

La Java Collection fornisce un'architettura per gestire il gruppo di oggetti. Per collezione si intende una singola unità di oggetti. Ci consente di archiviare e manipolare il gruppo di oggetti come una singola unità.

Possiamo facilmente eseguire molte operazioni come ricerca, ordinamento, inserimento, cancellazione e manipolazione su un gruppo di oggetti utilizzando il framework della raccolta.

Il framework Java Collection fornisce diverse interfacce e classi. Le interfacce contengono Impostato, Elenco , Coda, Deque e le classi contengono Lista di array , Vettore , Lista collegata , HashSet , Set di alberi , LinkedHashSet , E PriorityQueue .

primavera e primavera mvc

In questa sezione distingueremo due elementi del Quadro della raccolta , che è List e ArrayList. List è un'interfaccia e ArrayList è una classe.

Differenza tra List e ArrayList

Elenco interfaccia

La List è un'interfaccia figlia del framework Collection che ci permette di mantenere la raccolta ordinata degli oggetti. Possiamo memorizzare i valori duplicati e gli elementi nulli utilizzando List. Fornisce un metodo basato su indice per eseguire operazioni di inserimento, eliminazione, ricerca e aggiornamento sugli oggetti.

L'interfaccia List si trova nel pacchetto java.util. Implementa le classi ArrayList, LinkedList, Stack e Vector. È anche una base di classi ListIterator utilizzando le quali possiamo scorrere l'elenco in avanti e all'indietro.

L'interfaccia dell'elenco fornisce l'accesso posizionale e l'inserimento di elementi e preserva l'ordine di inserimento. L'istanza di List può essere creata utilizzando le classi di implementazione.

Implementazione dell'elenco:

Possiamo implementare l'interfaccia List utilizzando ArrayList, LinkedList, Vector e Classi di stack .

Per istanziare l'interfaccia List, possiamo utilizzare le seguenti sintassi:

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

Considera l'esempio seguente di 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); } } 

Produzione:

leggi di equivalenza
 [Hello, Java, Tpoint] 

Classe ArrayList

La classe ArrayList utilizza un array dinamico per memorizzare gli elementi. La classe ArrayList si comporta come un array, ma non ha limiti di dimensione. Possiamo aggiungere o rimuovere gli elementi quando vogliamo. Possiamo memorizzare l'elemento duplicato utilizzando la classe ArrayList. Gestisce internamente l'ordine di inserimento.

La classe ArrayList è molto più flessibile dell'array tradizionale. Implementa l'interfaccia List per utilizzare tutti i metodi dell'interfaccia List. Si svolge in Giava pacchetto .util.

La classe ArrayList eredita la classe AbstractList e implementa l'interfaccia List. È possibile accedere ai suoi elementi in modo casuale. Non può essere utilizzato per tipi primitivi come int, char, ecc.; per questi tipi di dati abbiamo bisogno di una classe wrapper.

Implementazione di ArrayList:

Una classe ArrayList eredita tutti i metodi della classe AbstractList e implementa l'interfaccia List.

La classe ArrayList può essere dichiarata come segue:

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

ArrayList può essere definito come segue:

 ArrayList myList = new ArrayList(); 

Considera l'esempio seguente di 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); } } 

Produzione:

 [Hello, Java, Tpoint] 

Alcune differenze chiave tra l'interfaccia Elenco e la classe ArrayList

Alcune delle principali differenze tra List e ArrayList sono le seguenti:

  • Una delle differenze principali è questa List è un'interfaccia e ArrayList è una classe del framework della raccolta Java.
  • IL L'elenco estende il quadro della raccolta , comparativamente ArrayList estende la classe AbstractList e implementa l'interfaccia List .
  • Lo spazio dei nomi per List e ArrayList è rispettivamente System.Collection.Generic e System Collection.
  • L'elenco memorizza gli elementi in una sequenza e sono identificati dal numero di indice individuale. In confronto, ArrayList memorizza gli elementi in un array dinamico; può crescere quando richiesto.

Quando definiamo la Lista come segue:

 List myList = new ArrayList(); 

Significa che possiamo chiamare i metodi e fare riferimento ai membri solo dall'interfaccia List.

Se definiamo ArrayList come segue:

come disattivare la modalità sviluppatore
 ArrayList myList = new ArrayList(); 

Significa che possiamo invocare i metodi disponibili in ArrayList e utilizzare i suoi membri oltre alla List.

Considera la tabella seguente per alcuni confronti principali tra List e ArrayList:

Base di confronto Elenco Lista di array
Generale È un'interfaccia. È classe.
Lavoro Crea un elenco di oggetti a cui è possibile accedere tramite il numero di indice individuale. Crea un array dinamico che può essere espanso quando necessario.
Implementazione Lista lista1= new ArrayList(); ArrayList myList = new ArrayList();
Estendi/Implementa Estende il quadro della raccolta. Estende la classe AbstractList e implementa l'interfaccia List.
Pacchetto base java.util java.util
Spazio dei nomi System.Collection.Generic System.Collection
Prestazione Fornisce una manipolazione più rapida degli oggetti. Fornisce una manipolazione lenta sugli oggetti rispetto a List.
Istanziazione Non può essere istanziato. Può essere istanziato

Conclusione

List è un'interfaccia e ArrayList è una classe del framework Java Collection. List crea un array statico e ArrayList crea un array dinamico per archiviare gli oggetti. Pertanto l'elenco non può essere espanso una volta creato, ma utilizzando ArrayList possiamo espandere l'array quando necessario.

È preferibile utilizzare l'interfaccia Elenco se si desidera sfruttare il polimorfismo. In futuro, se ci verrà richiesto di implementare l'interfaccia, non avremo bisogno di modificare il programma.