Разлика между ArrayList и Vector в Java
Съдържание
ArrayList и Vector са класовете в йерархията на Framework Framework. ArrayList и Vector се използват за създаване на динамичен масив от обекти, където масивът може да нараства в размер както и когато е необходимо. Има две основни разлики, които отличават ArrayList и Vector е, че Vector принадлежи към Legacy класове, които по-късно бяха реинженерирани за поддържане на колекционните класове, докато, ArrayList е стандартен клас за колекция. Друга важна разлика е, че ArrayList не е синхронизиран от друга страна; Вектор се синхронизира.
Нека изучим някои други разлики с помощта на сравнителната диаграма, показана по-долу.
- Сравнителна диаграма
- дефиниция
- Ключови разлики
- прилики
- заключение
Сравнителна диаграма
Основа за сравнение | ArrayList | вектор |
---|---|---|
Основен | Класът ArrayList не е синхронизиран. | Векторният клас е синхронизиран. |
Наследен клас | ArrayList е стандартен клас за колекция. | Vector е наследствен клас, препроектиран в подкрепа на класа за колекция. |
Декларация за клас | клас ArrayList | клас вектор |
Преразпределение | Когато не е посочено, ArrayList се увеличава наполовина от неговия размер. | Когато не е посочено, вектор се увеличава, за да удвои размера си. |
производителност | Тъй като ArrayList е несинхронизиран, той работи по-бързо от Vector. | Тъй като Vector се синхронизира, той работи по-бавно от ArrayList. |
Преброяване / Итераторът | ArrayList използва Iterator интерфейс за преминаване на обектите, съхранявани в ArrayList. | Vector използва Изброяване, както и Iterator интерфейс за преминаване на обектите, съхранявани във Vectors. |
Дефиниция на ArrayList
ArrayList принадлежи към списъка на стандартните класове за колекция. Класът ArrayList е дефиниран вътре в java.util пакет, той разширява AbstractList клас, който също е стандартен клас за събиране, и той също се прилага списък, интерфейс, определен в колекционните интерфейси. В Java стандартният масив винаги е с фиксирана дължина. Това означава веднъж създадено; тя не нараства динамично или се свива по размер. Така че, трябва да имате предварителни познания за дължината на масива, който използвате. Но понякога може да се случи, че необходимата дължина се разкрива по време на изпълнение, така че за справяне с този вид ситуация java въведе ArrayList.
ArrayList е клас, използван за динамично създаване на масив, който съдържа препратките към обектите. Този масив може да нарасне в размер както и когато е необходимо. Декларацията за клас е следната:
клас ArrayList Тук E указва типа обекти, които масивът ще държи. Създаденият масив е с променлива дължина и се увеличава и намалява по размер, когато обектите се добавят или премахват от списъка. ArrayList не е синхронизиран, което означава, че повече от една нишка може да работи върху масива едновременно. Например, ако една нишка добавя референция на обект към масива, а друга нишка премахва едновременно референтен обект от същия масив. Създаването на динамичен масив с помощта на клас ArrayList: ArrayList В горния код можете да видите това; Създадох масив от обекти от тип низ. Добавих някои обекти към масива S1, използвайки метода add (), а по-късно изтрих някои обекти, използвайки метод remove (). Можете да наблюдавате, ако не посочите първоначалния размер на масива, той ще бъде с дължина '0'. Както можете да видите масивът се увеличава и свива по размер, когато добавяте и изтривате елементите. Vector е клас Legacy, който е реинженериран да поддържа класа на колекция в йерархията на Framework Framework. Векторният клас също е дефиниран в java.util пакет, удължен с AbstractList клас и се прилага от списък интерфейс. Класът Vector се декларира както следва: клас вектор Тук E определя типа на обекта, който ще се съхранява в масив. Масивът, създаден с помощта на клас Vector, е с променлива дължина. Увеличава се удвоява размера си, ако прирастът не е посочен. Да разберем създаването на масив с помощта на Vector. вектор В горния код можете да видите, че по-специално споменах стойността на размера и нарастването съответно в конструктора на Vector, докато декларирах масива от низови обекти. Следователно можете да забележите, че когато лимитът на масива завършва, той се увеличава със стойността, предоставена на конструктора по време на деклариране. В заключение казвам, че използването на ArrayList е по-добро от използването на Vector, тъй като се представя по-бързо и по-добре.
Определение на Vector
прилики:
Заключение: