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

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 15 Май 2024
Anonim
Продвинутая Java: Динамический массив (ArrayList) - Как устроен?
Видео: Продвинутая Java: Динамический массив (ArrayList) - Как устроен?

Содержание


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

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

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

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


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

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

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


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

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

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

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

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

Заключение:

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