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