Препоръчано, 2020

Избор На Редактора

Разлика между списък и ArrayList в Java

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

Сравнителна таблица

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

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

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

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

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

Определение на ArrayList

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

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

Ключови разлики между списък и ArrayList

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

Заключение:

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

Top