Differenza tra ArrayList e Vector in Java
Contenuto
ArrayList e Vector sono entrambi le classi nella gerarchia di Collection Framework. ArrayList e Vector, entrambi vengono utilizzati per creare una matrice dinamica di oggetti in cui la matrice può aumentare di dimensioni come e quando richiesto. Esistono due differenze fondamentali che distinguono ArrayList e Vector è che Vector appartiene alle classi Legacy che sono state successivamente riprogettate per supportare le classi di raccolta, mentre una ArrayList è una classe di raccolta standard. Un'altra differenza importante è che ArrayList non è sincronizzato d'altra parte; Il vettore è sincronizzato.
Studiamo alcune altre differenze con l'aiuto del grafico di confronto mostrato di seguito.
- Tabella di comparazione
- Definizione
- Differenze chiave
- Somiglianze
- Conclusione
Tabella di comparazione
Base per il confronto | Lista di array | Vettore |
---|---|---|
Di base | La classe ArrayList non è sincronizzata. | La classe vettoriale è sincronizzata. |
Classe legacy | ArrayList è una classe Collection standard. | Vector è una classe legacy, riprogettata per supportare la classe di raccolta. |
Dichiarazione di classe | class ArrayList | classe vettoriale |
Riallocazione | Se non specificato, un ArrayList viene incrementato della metà della sua dimensione. | Se non specificato, un vettore viene incrementato per raddoppiarne le dimensioni. |
Prestazione | Poiché ArrayList non è sincronizzato, funziona più velocemente di Vector. | Poiché Vector è sincronizzato, funziona più lentamente di ArrayList. |
Enumeration / Iterator | ArrayList utilizza l'interfaccia Iterator per attraversare gli oggetti memorizzati in ArrayList. | Vector utilizza l'Enumerazione e l'interfaccia Iterator per attraversare gli oggetti memorizzati nei Vettori. |
Definizione di ArrayList
ArrayList appartiene all'elenco delle classi di raccolta standard. La classe ArrayList è definita all'interno di java.util pacchetto, estende il AbstractList classe che è anche una classe di raccolta standard e implementa anche Elenco, un'interfaccia definita nelle interfacce di raccolta. In Java, un array standard ha sempre una lunghezza fissa. Ciò significa che una volta creato; non cresce o si restringe dinamicamente in termini di dimensioni. Quindi, dovresti avere la conoscenza preliminare della lunghezza dell'array che stai utilizzando. Ma a volte può capitare che la lunghezza richiesta venga rivelata in fase di esecuzione, quindi, per gestire questo tipo di situazione, Java ha introdotto ArrayList.
ArrayList è la classe utilizzata per la creazione dinamica di un array che contiene i riferimenti agli oggetti. Questa matrice potrebbe aumentare di dimensioni come e quando richiesto. La dichiarazione di classe è la seguente:
class ArrayList Qui, E specifica il tipo di oggetti che un array terrà. L'array creato ha una lunghezza variabile e aumenta e diminuisce di dimensioni quando gli oggetti vengono aggiunti o rimossi dall'elenco. ArrayList non è sincronizzato, ciò significa che più di un thread può operare sull'array contemporaneamente. Ad esempio, se un thread aggiunge un riferimento a un oggetto all'array e un altro thread rimuove contemporaneamente un riferimento a un oggetto dallo stesso array. La creazione di un array dinamico usando la classe ArrayList: Lista di array Nel codice sopra, puoi vederlo; Ho creato una matrice di oggetti di tipo stringa. Ho aggiunto alcuni oggetti all'array S1 usando il metodo add (), e successivamente ho eliminato alcuni oggetti usando il metodo remove (). È possibile osservare se non si specifica la dimensione iniziale dell'array che sarà di lunghezza "0". Come puoi vedere l'array cresce e si riduce di dimensioni quando aggiungi ed elimini gli elementi. Vector è una classe Legacy riprogettata per supportare la classe collection nella gerarchia di Collection Framework. Anche la classe vettoriale è definita in java.util pacchetto, esteso di AbstractList classe e implementato dal Elenco interfaccia. La classe Vector è dichiarata come segue: classe vettoriale Qui, la E definisce il tipo di oggetto che verrà archiviato in un array. Un array creato utilizzando la classe Vector ha lunghezza variabile. Aumenta il doppio della sua dimensione se l'incremento non è specificato. Comprendiamo la creazione di array utilizzando Vector. Vettore Nel codice sopra puoi vedere che, in particolare, ho menzionato la dimensione e il valore di incremento nel costruttore di Vector rispettivamente, dichiarando l'array di oggetti stringa. Pertanto, è possibile osservare che al termine del limite dell'array, esso aumenta del valore fornito al costruttore durante la dichiarazione. Concludo dicendo che l'uso di ArrayList è migliore dell'uso di Vector in quanto offre prestazioni migliori e più veloci.Definizione di vettore
Somiglianze:
Conclusione: