Рекомендуем, 2024

Выбор редакции

Разница между списком и ArrayList в Java

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

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

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

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

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

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

Вы можете получить элемент из списка, используя метод get () . Вы можете установить значение элемента в списке, используя метод set () . Вы также можете получить список из списка, используя метод sublist () . Становится удобным работать с подсписком вместо списка.

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

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

ArrayList имеет конструкторы, которые создают массив с его начальной емкостью. Хотя емкость объекта класса ArrayList увеличивается автоматически при добавлении элементов в массив, тем не менее вы можете вручную увеличить емкость объекта ArrayList с помощью метода sureCapacity () . Лучше изначально увеличить емкость массива, а не перераспределять память позже. Потому что перераспределение обходится дороже, чем выделение памяти сразу.

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

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

Заключение:

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

Top