logo

Різниця між List і ArrayList

Колекція Java надає архітектуру для роботи з групою об’єктів. Колекція означає окрему одиницю об'єктів. Це дозволяє нам зберігати та маніпулювати групою об’єктів як єдиним цілим.

Ми можемо легко виконувати багато операцій, таких як пошук, сортування, вставка, видалення та маніпуляції над групою об’єктів, використовуючи структуру колекції.

Framework Java Collection надає кілька інтерфейсів і класів. Інтерфейси містять набір, Список , Черга, Дек , і класи містять ArrayList , Вектор , LinkedList , HashSet , TreeSet , LinkedHashSet , і PriorityQueue .

функції java8

У цьому розділі ми будемо розрізняти два елементи Рамка колекції , який є List і ArrayList. Список — це інтерфейс, а ArrayList — клас.

Різниця між List і ArrayList

Інтерфейс списку

Список є дочірнім інтерфейсом структури Collection, який дозволяє підтримувати впорядковану колекцію об’єктів. Ми можемо зберігати повторювані значення та нульові елементи за допомогою списку. Він надає метод на основі індексу для виконання операцій вставки, видалення, пошуку та оновлення об’єктів.

Інтерфейс списку міститься в пакеті 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); } } 

Вихід:

що таке пасхальне яйце android
 [Hello, Java, Tpoint] 

Клас ArrayList

Клас ArrayList використовує динамічний масив для зберігання елементів. Клас ArrayList діє як масив, але в ньому немає обмежень на розмір. Ми можемо додавати або видаляти елементи, коли забажаємо. Ми можемо зберегти повторюваний елемент за допомогою класу ArrayList. Він керує внутрішнім порядком вставки.

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

Клас ArrayList успадковує клас AbstractList і реалізує інтерфейс списку. До її елементів можна отримати довільний доступ. Його не можна використовувати для примітивних типів, таких як 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.
  • The Список розширює структуру колекції , порівняльно ArrayList розширює клас AbstractList і реалізує інтерфейс List .
  • Простір імен для List і ArrayList — System.Collection.Generic і System Collection відповідно.
  • Список зберігає елементи в послідовності та ідентифікується індивідуальним номером індексу. Для порівняння ArrayList зберігає елементи в динамічному масиві; він може рости, коли це потрібно.

Коли ми визначаємо список наступним чином:

 List myList = new ArrayList(); 

Це означає, що ми можемо викликати лише методи та посилальні члени з інтерфейсу списку.

Якщо ми визначимо ArrayList наступним чином:

каталог у командах Linux
 ArrayList myList = new ArrayList(); 

Це означає, що ми можемо викликати доступні методи в ArrayList і використовувати його члени на додаток до списку.

Розгляньте наведену нижче таблицю для порівняння заголовків List і ArrayList:

База порівняння Список ArrayList
Загальний Це інтерфейс. Це клас.
Робота Він створює список об’єктів, до яких можна отримати доступ за індивідуальним номером індексу. Він створює динамічний масив, який за потреби можна розширити.
Реалізація Список список1= новий ArrayList(); ArrayList myList = новий ArrayList();
Розширити/впровадити Це розширює рамки колекції. Він розширює клас AbstractList і реалізує інтерфейс List.
Базовий пакет java.util java.util
Простір імен System.Collection.Generic Система.Колекція
Продуктивність Це забезпечує більш швидке маніпулювання об'єктами. Він забезпечує повільні маніпуляції з об’єктами порівняно зі List.
Інстанціювання Його не можна створити. Це може бути примірник

Висновок

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

Краще використовувати інтерфейс списку, якщо ви хочете скористатися перевагами поліморфізму. У майбутньому, якщо від нас вимагатимуть впровадження інтерфейсу, нам не потрібно буде змінювати програму.