Різниця між списком і ArrayList на Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 15 Травень 2024
Anonim
Урок по Java 51: Сортировка коллекций и интерфейсы - Comparable и Comparator
Відеоролик: Урок по Java 51: Сортировка коллекций и интерфейсы - Comparable и Comparator

Зміст


Список та ArrayList є членами колекції. Список - це сукупність елементів у послідовності, де кожен елемент є об'єктом, а елементи отримують доступ до позиції там (індексу). ArrayList створює динамічний масив об'єктів, який збільшує або зменшує розмір, коли це потрібно. Основна відмінність між List і ArrayList полягає в тому Список є інтерфейсом і ArrayList - клас. Вивчимо різницю між List та ArrayList за допомогою таблиці порівняння, показаної нижче.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняСписокArrayList
ОсновніСписок - інтерфейсArrayList - це стандартний клас колекції.
СинтаксисСписок інтерфейсівклас ArrayList
Розширення / впровадженняІнтерфейс списку розширює Framework Framework.ArrayList розширює AbstractList і реалізує інтерфейс списку.
Простір іменSystem.Collections.Generic.System.Collections.
РоботаВін використовується для створення списку елементів (об'єктів), які пов'язані з їх індексними номерами.ArrayList використовується для створення динамічного масиву, який містить об'єкти.


Визначення списку

Список - це інтерфейс який розширює Колекція рамки. Інтерфейс списку описує набір елементів, розташованих послідовно. Інтерфейс списку реалізований за допомогою таких стандартних класів колекцій, як ArrayList, LinkedList, CopyOnWriteArrayList, вектор, стек. Інтерфейс списку містить елементи, пов'язані з їх індексом. Ви можете отримати доступ до елемента в списку за його позицією (індексом) у списку. Список, створений за допомогою інтерфейсу List, починається з нульового індексу.

На додаток до методів, успадкованих Framework Collection, інтерфейс List також визначає якийсь власний метод. Методи, додані інтерфейсом List, додати (int, E) і addAll (int, колекція). Ці методи додають елемент до списку за їх індексом. Методи всередині списку можуть запускати подібний виняток НепідтримуванийOperationException якщо метод не в змозі змінити список. Коли один об'єкт у списку несумісний з іншим об'єктом у списку, значить ClassCastException Якщо елементи спроби вставити нульовий об'єкт у список, елементи нулю не дозволені, NullPointerException кидається.


Ви можете отримати елемент зі списку за допомогою get () метод. Ви можете встановити значення елемента в списку, використовуючи встановити () метод. Ви також можете отримати список із списку, використовуючи метод sublist (). Ставати зручно працювати з підписком замість списку.

Визначення ArrayList

Одним із стандартних класів колекції є ArrayList, який розширюється AbstractList клас, а також реалізує Список інтерфейс. Клас ArrayList використовується для створення динамічних масивів, які ростуть і стискаються, коли це потрібно. Список, створений за допомогою класу ArrayList, - це не що інше, як масив об'єктів. У Java стандартний масив має фіксовану довжину, тож ви повинні заздалегідь знати розмір масиву. Але, можливо, ви можете не знати, яка довжина масиву вам потрібна до часу виконання. Отже, рамка Collection представила клас ArrayList для подолання цього питання.

ArrayList має конструктори, які створюють масив з його потенційною ємністю. Хоча ємність об’єкта класу ArrayList автоматично збільшується, коли елементи додаються до масиву, все ж ви можете вручну збільшити ємність об’єкта ArrayList, використовуючи метод Гарантія (). Краще спочатку збільшити ємність масиву, а не перерозподіляти пам'ять пізніше. Тому що перерозподіл коштує дорожче, ніж розподілити пам'ять відразу.

  1. Однією з найбільш важливих відмінностей між List і ArrayList є те, що список є інтерфейс а ArrayList - це стандартна колекція клас.
  2. Інтерфейс списку розширює Колекція рамки, тоді як ArrayList розширюється AbstractList Клас і він реалізує Список інтерфейси.
  3. Простір імен для інтерфейсу List є System.Collection.Generic тоді як простір імен для ArrayList є System.Collection.
  4. Інтерфейс списку створює набір елементів, які зберігаються в послідовності і ідентифікуються або отримують доступ до них за їх індексом. З іншого боку, ArrayList створює масив об'єктів, де масив може динамічно зростати при необхідності.

Висновок:

ArrayList долає проблему статичного масиву в стандартній Java, тобто масив не може збільшуватися в розмірі, коли він створений. Коли масив створюється за допомогою ArrayList, створюється динамічний масив, який може збільшуватися та зменшуватися в розмірах, коли це необхідно. Стандартний клас колекції ArrayList розширює інтерфейс List.