Java Collection предоставя архитектура за работа с групата обекти. Колекцията означава единична единица обекти. Тя ни позволява да съхраняваме и манипулираме групата от обекти като едно цяло.
Можем лесно да извършваме много операции като търсене, сортиране, вмъкване, изтриване и манипулиране на група обекти, използвайки рамката за събиране.
Рамката на Java Collection предоставя няколко интерфейса и класове. Интерфейсите съдържат Комплект, списък , опашка, дек , а класовете съдържат ArrayList , вектор , LinkedList , HashSet , TreeSet , LinkedHashSet , и PriorityQueue .
сесията е изтекла
В този раздел ще разграничим два елемента на Рамка за събиране , което е List и ArrayList. Списъкът е интерфейс, а 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, ако искате да се възползвате от полиморфизма. В бъдеще, ако се наложи да внедрим интерфейса, няма да е необходимо да променяме програмата.