Відмінності між Java Vector і ArrayList

Одне загальне визначення, яке ми пам’ятатимемо, пишемо про вектор (Java). Java-вектори зазвичай використовуються замість масивів. Ми можемо навести приклади того ж - Поки дані автоматично збільшуються, вони розширяться. Ми можемо створити вектор з початковим розміром або з початковим розміром за замовчуванням.

Ми побачимо код для початкового розміру або початкового розміру ::

  • Щоб створити вектор із початковим розміром за замовчуванням
    Вектор v = новий вектор ();
  • Створення вектора з початковим розміром
    Вектор v = новий вектор (300);

Нижче наведено загальні векторні методи:

  • додати (о)
  • ясно ()
  • firstElement (i)
  • listIterator ()
  • розмір ()
  • toArray (Object ())

Java ArrayList - одна з найпростіших і найбільш використовуваних структур даних у класах реалізації бібліотеки Java API. Головне, це те, що він використовує динамічний масив для зберігання елементів. Одне, що нам слід пам’ятати під час створення масивів - це ті, що мають фіксовану довжину, як тільки вони створені, ми не можемо робити жодних модифікацій.

Нижче наведені Конструктори

ArrayList () - допомагає створювати список порожніх масивів

ArrayList (колекція c) - допомагає створити список конструктивних елементів у a

Попередньо вказана колекція

ArrayList (int capacitor) - допомагає створити порожній список.

Нижче наведено найбільш часто використовувані методи :: ::

  • Булева добавка (E obj)
  • недійсне додавання (int index, E obj)
  • E get (int індекс)
  • boolean містить (Object obj)
  • boolean isEmpty ()

Java була представлена ​​з новою колекцією API в Java 2.0 для забезпечення єдиних структурованих класів. Коли новий API буде введено, в методах відбудуться зміни. Тепер тут ми побачимо деякі старі та нові методи, змінені під час зміни API.

Старий методНовий метод
Об'єкт elementAt (int)Об'єкт get (int)
void insertElementAt (Object, int)недійсне додавання (індекс, об’єкт)
пустота addElement (об’єкт)булева добавка (об’єкт)
пустота setElementAt (int)Набір об'єктів (int, Object)
void removeElementAt (int)недійсне видалення (int)
void removeAllElements ()недійсний ()

Порівняння «голова до голови» між Java Vector та ArrayList (Інфографіка)

Нижче наведено 8 найкращих порівнянь між Java Vector та ArrayList

Основні відмінності між Java Vector і ArrayList

Нижче наведено списки пунктів, опишіть ключові відмінності Java Vector від ArrayList

ArrayList не синхронізований і не є безпечним для потоків, але вектор синхронізований і має один потік для виклику методів одночасно. Але коли виходить на безпеку, це єдиний різьбовий кейс ArrayList - це єдиний вибір, але якщо ми працюємо над багатопотоковою обробкою, то нам потрібно віддавати перевагу векторам. Якщо ми маємо будь-які сумніви чи плутанину в даних, то ми можемо вибрати вектор, тому що у векторі ми можемо встановити значення приросту.

Вектор може використовувати як інтерфейс переліку, так і інтерфейс ітератора для переходу по елементах, але ArrayList може використовувати інтерфейс Iterator лише для переходу. У векторному Якщо ви використовуєте обгортку Integer, ви не зможете змінити ціле значення. У векторі два найбільш вживаних методу мають Next () та next (). Списки ArrayList створюються з початковим розміром, оскільки, якщо об’єкти додаються, він збільшуватиме розмір, а розмір об'єктів, що вилучають, зменшиться автоматично.

Векторний клас на Java реалізує динамічний масив об'єктів. Він точно ідентичний масиву, містить елементи, доступні за допомогою простого цілого індексу. Однак розмір вектора може зростати або зменшуватися, щоб вмістити додавання та видалення елементів за потребою.

І Java Vector, і ArrayList забезпечують масив, який може бути збільшений, що означає масив, який може збільшити простір. Java забезпечує векторний клас для надання динамічного розміру, загальних та корисних заздалегідь визначених методів (ми вже бачили методи на сторінці1). Використовуйте масив, якщо розмір фіксований; використовувати вектор, якщо розмір може змінюватися. І Java Vector, і ArrayList засновані на індексах і використовують масив внутрішньо, і обидва Java Vector проти ArrayList підтримують порядок вставки елементів. Java пропонує класу ArrayList для надання подібних функцій, як векторні динамічні, загальні та корисні заздалегідь визначені методи.

Обидва класи Java Vector та ArrayList використовуються для динамічного використання масивів. Class ArrayList - E визначає тип об'єктів, які може містити масив. Тут створений масив є змінним, і він може збільшуватися або зменшуватися на основі розподілу об'єктів. Vector :: class Vector - E представляє тип об'єкта, який буде зберігатися в масиві.

Рекомендовані курси

  • Навчальний курс з структури даних та алгоритмів
  • Курси з управління дефектами
  • Програмування Shell на програмі Cygwin

Таблиця порівняння між Java Vector і ArrayList

Далі наведена таблиця порівняння між Java Vector і ArrayList

Основа для порівнянняВекториArrayList
ОсновніВектор - це спадковий клас, і він синхронізованийArrayList не є застарілим класом і не синхронізується.
РозмірМайже вдвічі більший розмір, якщо збільшиться загальна кількість елементівArrayList збільшиться на 50% від свого розміру, якщо кількість елементів збільшиться
Зростання данихВектор динамічно росте і скорочується, щоб забезпечити оптимальне використання сховищаArrayList динамічно зростає та скорочується, щоб забезпечити оптимальне використання сховища
ІнтерфейсІнтерфейс Ітератора використання та перерахуванняArrayList використовує інтерфейс ітератора
ПродуктивністьВектор повільний у порівнянні з ArrayList, оскільки він синхронізованийArrayList швидкий через не синхронізацію
Нитка безпечнаТакНі
Введено вВведено у версію JDK 1.0Введено у версію JDK 1.2
Встановити розмір приростуВектор визначає приріст розміруArrayList не визначає розмір приросту

Висновок Java Vector vs ArrayList

І нарешті, підсумовуючи, що вектор Java і ArrayList мають і переваги, і недоліки. Обидва дуже успішні на ринку. ArrayList - останній раз, якщо порівнювати з Vector. ArrayList є кращим, якщо вам не потрібна синхронізація. Під час використання Vector або ArrayList завжди намагайтеся ініціалізувати найбільшу ємність, яка знадобиться вашій програмі, оскільки розширення масиву коштує дорого. Я

ArrayList синхронізується, чому через те, що одночасно може працювати декілька потоків на масиві. Посилаючись на масив, якщо до цього об'єкта додається один потік, інший потік видаляє об'єкт із того ж масиву в той же час.

Java Vector і ArrayList обидва містять посилання на об'єкти. Якщо масив повністю зайнятий, і якщо ми хочемо додати новий об’єкт після повністю зайнятого, то тепер в обох випадках розмір збільшиться, але головна різниця приходить в розмір у ArrayList, якщо розмір не вказаний, він може збільшитися вдвічі від поточного масиву, але вектор може подвоїти розмір, якщо значення приросту не вказано.

Насамкінець я закінчую тим, що завжди вважаю за краще використовувати ArrayList. Чому тому, що ArrayList працює швидше і краще порівняно з Vector.

Рекомендована стаття

Це було керівництвом щодо відмінностей між Java Vector та ArrayList, їх значенням, порівнянням між головами, ключовими відмінностями, таблицею порівняння та висновком. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Продуктивність Java проти Python: які відмінності
  2. Продуктивність Scala vs Java: що краще? (Інфографіка)
  3. Java проти JavaScript - 8 корисних порівнянь для вивчення
  4. Java проти Python - найкращі 9 найважливіших порівнянь, які ви повинні вивчити
  5. Java Heap vs Stack - 7 дивовижних речей, які ви повинні знати
  6. C # масив проти списку: які переваги
  7. Array vs ArrayList | Топ-6 відмінностей