Арраилист вс Вецтор
Арраилист се може посматрати као динамички низ, који може нарасти у величини. Из тог разлога, програмеру не треба да зна величину арраилисте када га дефинише. Вектор се такође може посматрати као низ који може да расте у величини. Вектори се лако додељују и могу се користити када се не захтева тражена величина складишта све док се не изврши.
Шта је Арраилист?
Арраилист се може посматрати као динамички низ, који може нарасти у величини. Стога су арраиисти идеални за употребу у ситуацији у којој не знате величину елемената потребних у тренутку декларације. У Јави, арилисти могу држати само објекте, не могу директно држати примитивне типове (можете примити примитивне типове у објект или користити класе омота примитивних типова). Генерално, арилисти имају методе за извођење убацивања, брисања и претраживања. Временска сложеност приступа елементу је о (1), док уметање и брисање има временску сложеност о (н). У Јава-у се арраиисти могу кретати помоћу петље фореацх-а, итератора или једноставно користећи индексе. У Јави су арраилисти представљени из верзије 1.2 и она је део Јава Цоллецтионс Фрамеворк-а.
Шта је вектор?
Вектор је такође низ који може да расте у величини. Вектори се могу лако доделити и могу се користити када се не захтева тражена величина складишта све док се не изврши. Вектори такође могу држати само предмете и не могу држати примитивне типове. Вектори су синхронизовани, па се могу безбједно користити у вишеструким језицима. Векторима су на располагању методе додавања објеката, брисања објеката и објеката претраживања. Слично као арраилист у Јави, вектори се могу кретати помоћу фореацх петљи, итератора или једноставно користећи индексе. Када је у питању Јава, вектори су укључени још од прве верзије Јаве.
Која је разлика између Арраилиста и Вектора?
Иако су и поља и вектори врло слични динамичким низовима који могу нарасти у величини, имају неке важне разлике. Главна разлика између арраилиста и вектора је у томе што су вектори синхронизовани док арраилистс нису синхронизовани. Стога употреба поља за армирање у више-навођеним окружењима неће бити прикладна, док се вектори могу сигурно користити у више-навођеним окружењима (пошто су сигурни на нити). Али синхронизација у векторима би узроковала смањење перформанси. Због тога не би било добро користити векторе у окружењу с једним навојем. Интерно, и арраилисти и вектори користе низове за држање објеката. Када тренутни простор није довољан, вектори ће удвостручити величину своје унутрашње матрице, док арилисти повећавају величину своје унутрашње матрице за 50%. Али ако се користе и арраилисти и вектори, давањем одговарајућег почетног капацитета, може се избећи непотребно промене величине унутрашњег низа. У ситуацији када је позната стопа раста података, употреба вектора би била погоднија јер би се инкрементална вредност вектора могла дефинисати.