Diferència entre Arraylist i Vector

Diferència entre Arraylist i Vector
Diferència entre Arraylist i Vector

Vídeo: Diferència entre Arraylist i Vector

Vídeo: Diferència entre Arraylist i Vector
Vídeo: Aprender español: Diferencias entre el indicativo y el subjuntivo (nivel intermedio) 2024, De novembre
Anonim

Arraylist vs Vector

Una llista de matrius es pot veure com una matriu dinàmica, que pot augmentar de mida. Per aquest motiu, el programador no necessita saber la mida de la llista de matrius quan l'està definint. El vector també es pot veure com una matriu que pot créixer de mida. Els vectors es poden assignar fàcilment i es poden utilitzar quan no es coneix la mida necessària de l'emmagatzematge fins al moment d'execució.

Què és una llista de matrius?

Una llista de matrius es pot veure com una matriu dinàmica, que pot augmentar de mida. Per tant, les llistes de matrius són ideals per utilitzar-les en situacions en què no coneixeu la mida dels elements necessaris en el moment de la declaració. A Java, les llistes de matrius només poden contenir objectes, no poden contenir tipus primitius directament (podeu posar els tipus primitius dins d'un objecte o utilitzar les classes d'embolcall dels tipus primitius). En general, les llistes de matrius es proporcionen amb mètodes per dur a terme la inserció, la supressió i la cerca. La complexitat temporal d'accedir a un element és o(1), mentre que la inserció i la supressió tenen una complexitat temporal de o(n). A Java, les llistes de matrius es poden recórrer mitjançant bucles foreach, iteradors o simplement utilitzant els índexs. A Java, les llistes de matrius es van introduir a partir de la versió 1.2 i forma part del Java Collections Framework.

Què és un vector?

Vector també és una matriu que pot créixer de mida. Els vectors es poden assignar fàcilment i es poden utilitzar quan no es coneix la mida necessària de l'emmagatzematge fins al moment d'execució. Els vectors també només poden contenir objectes i no poden contenir tipus primitius. Els vectors estan sincronitzats, per tant es poden utilitzar de manera segura en entorns multiprocés. Els vectors disposen de mètodes per afegir objectes, eliminar objectes i cercar objectes. De manera similar a la llista de matrius a Java, els vectors es poden recórrer mitjançant bucles foreach, iteradors o simplement utilitzant els índexs. Quan es tracta de Java, els vectors s'han inclòs des de la primera versió de Java.

Quina diferència hi ha entre Arraylist i Vector?

Tot i que tant les llistes de matrius com els vectors són molt semblants a les matrius dinàmiques que poden créixer de mida, tenen algunes diferències importants. La principal diferència entre les llistes de matrius i els vectors és que els vectors estan sincronitzats mentre que les llistes de matrius no estan sincronitzades. Per tant, utilitzar llistes de matrius en entorns multifils no serà adequat, mentre que els vectors es poden utilitzar de manera segura en entorns multifils (ja que són segurs per a fils). Però la sincronització en vectors provocaria una reducció del rendiment. Per tant, no seria una bona idea utilitzar vectors en un entorn d'un sol fil. Internament, tant les llistes de matrius com els vectors utilitzen matrius per contenir objectes. Quan l'espai actual no és suficient, els vectors duplicaran la mida de la seva matriu interna, mentre que les llistes de matrius augmenten la mida de la seva matriu interna en un 50%. Però quan s'utilitzen tant les llistes de matrius com els vectors, donant una capacitat inicial adequada, es pot evitar el redimensionament innecessari de la matriu interna. En una situació en què es conegui la taxa de creixement de les dades, l'ús de vectors seria més adequat, ja que es podria definir el valor incremental dels vectors.

Recomanat: