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.
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.