logo

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

Java Collection предоставя архитектура за работа с групата обекти. Колекцията означава единична единица обекти. Тя ни позволява да съхраняваме и манипулираме групата от обекти като едно цяло.

Можем лесно да извършваме много операции като търсене, сортиране, вмъкване, изтриване и манипулиране на група обекти, използвайки рамката за събиране.

Рамката на Java Collection предоставя няколко интерфейса и класове. Интерфейсите съдържат Комплект, списък , опашка, дек , а класовете съдържат ArrayList , вектор , LinkedList , HashSet , TreeSet , LinkedHashSet , и PriorityQueue .

сесията е изтекла

В този раздел ще разграничим два елемента на Рамка за събиране , което е List и ArrayList. Списъкът е интерфейс, а ArrayList е клас.

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

Списък интерфейс

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

Интерфейсът List се намира в пакета java.util. Той имплементира класове ArrayList, LinkedList, Stack и Vector. Той също така е база от класове ListIterator, използвайки които можем да итерираме списъка в посоки напред и назад.

Интерфейсът на списъка осигурява позиционен достъп и вмъкване на елементи и запазва реда на вмъкване. Екземплярът на списъка може да бъде създаден с помощта на внедряващите класове.

Изпълнение на списъка:

Можем да внедрим интерфейса List, като използваме ArrayList, LinkedList, Vector и Стекови класове .

За да инстанцираме интерфейса List, можем да използваме следните синтаксиси:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Разгледайте примера по-долу за списък:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Изход:

обяснете независимостта на данните
 [Hello, Java, Tpoint] 

Клас ArrayList

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

Класът ArrayList е много по-гъвкав от традиционния масив. Той имплементира интерфейса List, за да използва всички методи на List Interface. Провежда се в Java пакет .util.

Класът ArrayList наследява класа AbstractList и имплементира интерфейса List. Елементите от него могат да бъдат достъпни на случаен принцип. Не може да се използва за примитивни типове като int, char и т.н.; за тези типове данни се нуждаем от обвиващ клас.

Внедряване на ArrayList:

Класът ArrayList наследява всички методи на класа AbstractList и имплементира интерфейса List.

Класът ArrayList може да бъде деклариран по следния начин:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList може да се дефинира по следния начин:

 ArrayList myList = new ArrayList(); 

Разгледайте примера по-долу за ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Изход:

 [Hello, Java, Tpoint] 

Някои ключови разлики между интерфейса на списъка и класа ArrayList

Някои основни разлики между List и ArrayList са следните:

  • Една от основните разлики е, че List е интерфейс, а ArrayList е клас на рамката на Java Collection.
  • The Списъкът разширява рамката на колекцията , сравнително ArrayList разширява класа AbstractList и имплементира интерфейса List .
  • Пространството от имена за List и ArrayList е съответно System.Collection.Generic и System Collection.
  • Списъкът съхранява елементи в последователност и се идентифицира с индивидуалния индексен номер. Сравнително ArrayList съхранява елементите в динамичен масив; може да расте, когато е необходимо.

Когато дефинираме списъка, както следва:

 List myList = new ArrayList(); 

Това означава, че можем да извикваме методите и референтните членове само от интерфейса на списъка.

Ако дефинираме ArrayList по следния начин:

dfs алгоритъм
 ArrayList myList = new ArrayList(); 

Това означава, че можем да извикаме наличните методи в ArrayList и да използваме неговите членове в допълнение към списъка.

Разгледайте таблицата по-долу за някои главни сравнения между List и ArrayList:

База за сравнение списък ArrayList
Общ Това е интерфейс. Това е класа.
работа Той създава списък с обекти, които могат да бъдат достъпни чрез индивидуалния индексен номер. Той създава динамичен масив, който може да бъде разширен, когато е необходимо.
Внедряване List list1= нов ArrayList(); ArrayList myList = нов ArrayList();
Разширете/Внедрете Той разширява рамката на колекцията. Той разширява класа AbstractList и имплементира интерфейса List.
Основен пакет java.util java.util
Пространство от имена System.Collection.Generic System.Collection
производителност Осигурява по-бързо манипулиране на обекти. Той осигурява бавно манипулиране на обекти в сравнение със List.
Инстанция Не може да се инстанцира. Може да бъде инстанциран

Заключение

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

По-добре е да използвате List Interface, ако искате да се възползвате от полиморфизма. В бъдеще, ако се наложи да внедрим интерфейса, няма да е необходимо да променяме програмата.