Разлика между List и ArrayList в Java

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 15 Може 2024
Anonim
Java SE. Урок 34. Коллекции ArrayList & LinkedList
Видео: Java SE. Урок 34. Коллекции ArrayList & LinkedList

Съдържание


Списък и ArrayList са членовете на Collection Framework. Списък е съвкупност от елементи в поредица, където всеки елемент е обект и елементите са достъпни от там позиция (индекс). ArrayList създава динамичен масив от обекти, който увеличава или намалява по размер, когато се налага. Основната разлика между List и ArrayList е в това списък е интерфейс и ArrayList е клас. Нека проучим разликата между List и ArrayList с помощта на сравнителната диаграма, показана по-долу.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениесписъкArrayList
ОсновенСписъкът е интерфейсArrayList е стандартен колекционен клас.
СинтаксисИнтерфейс Списъкклас ArrayList
Разширете / ПрилаганеИнтерфейсът на списъка разширява Framework Framework.ArrayList разширява AbstractList и реализира List интерфейс.
Именно пространствоSystem.Collections.Generic.System.Collections.
работаИзползва се за създаване на списък с елементи (обекти), които са свързани с техните индексни номера.ArrayList се използва за създаване на динамичен масив, който съдържа обекти.


Определение на списъка

Списъкът е ан интерфейс което удължава колекция рамка. Интерфейсът на списъка описва колекцията от елементи, които са подредени последователно. Интерфейсът на списъка се реализира от следните стандартни класове за събиране като ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack, Интерфейсът на списъка има елементи, които са свързани с техните индексни номера. Можете да получите достъп до елемент от списъка по неговата позиция (индекс) в списъка. Списък, създаден с помощта на List интерфейс, започва с нулев базиран индекс.

В допълнение към методите, наследени от Collection Framework, интерфейсът List също дефинира някакъв собствен метод. Методите, добавени от интерфейса на списъка са, добавяне (int, E) и addAll (int, колекция), Тези методи добавят елемент към списъка чрез своя индекс. Методите в списъка могат да хвърлят такова изключение UnsupportedOperationException ако методът не е в състояние да промени списъка. Когато един обект в списъка е несъвместим с друг обект в списъка, тогава ClassCastException се хвърля. Новите елементи не са разрешени в списъка, ако се опитате да вмъкнете нулев обект в списъка, NullPointerException е хвърлен.


Можете да получите елемент от списъка, като използвате получите () метод. Можете да зададете стойността на елемент в списъка, като използвате комплект() метод. Можете също да получите подпис от списъка, като използвате метод подсписък (), Става удобно да се работи с подлист вместо със списък.

Дефиниция на ArrayList

Един от стандартните класове за колекция е ArrayList, който се разширява AbstractList клас и също така изпълнява списък интерфейс. Класът ArrayList се използва за създаване на динамични масиви, които растат и се свиват, когато е необходимо. Списъкът, създаден с помощта на клас ArrayList, не е нищо друго освен масив от обекти. В Java стандартният масив има фиксирана дължина, така че, трябва да знаете размера на масива предварително. Но може да се окаже, че може да не знаете каква дължина на масива се нуждаете до времето на изпълнение. Следователно, Collection Framework въведе клас ArrayList за преодоляване на този проблем.

ArrayList има конструктори, които създават масива с неговата интензивен капацитет. Въпреки че капацитетът на обекта от клас ArrayList се увеличава автоматично, когато елементи се добавят към масива, все пак можете ръчно да увеличите капацитета на обекта на ArrayList с помощта на метода ensureCapacity (), По-добре е първоначално да увеличите капацитета на масива, вместо да преразпределите паметта по-късно. Тъй като преразпределянето е по-скъпо от разпределянето на паметта наведнъж.

  1. Една от най-важните разлики между List и ArrayList е, че списъкът е an интерфейс и ArrayList е стандартна колекция клас.
  2. Списък интерфейс разширява колекция рамката, докато ArrayList се разширява AbstractList Клас и той изпълнява списък интерфейси.
  3. Пространството от имена за List интерфейса е System.Collection.Generic като има предвид, че пространството на имена за ArrayList е System.Collection.
  4. Интерфейсът на списъка създава колекция от елементи, които се съхраняват в последователност и се идентифицират или имат достъп до техния индекс номер. От друга страна, ArrayList създава масив от обекти, където масивът може динамично да расте, когато се изисква.

Заключение:

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