Рекомендуємо, 2024

Вибір Редакції

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

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

Діаграма порівняння

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

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

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

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

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

Визначення ArrayList

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

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

Ключові відмінності між списком і списком ArrayList

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

Висновок:

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

Top