
Сравнительная таблица
Основа для сравнения | Список | 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
- Одним из наиболее важных различий между List и ArrayList является то, что list является интерфейсом, а ArrayList является стандартным классом Collection.
- Интерфейс List расширяет платформу Collection, тогда как ArrayList расширяет класс AbstractList и реализует интерфейсы List .
- Пространство имен для интерфейса List - System.Collection.Generic, тогда как пространство имен для ArrayList - System.Collection .
- Интерфейс списка создает коллекцию элементов, которые хранятся в последовательности и идентифицируются или доступны по их номеру индекса. С другой стороны, ArrayList создает массив объектов, где массив может динамически увеличиваться при необходимости.
Заключение:
ArrayList устраняет проблему статического массива в стандартной Java, т.е. массив не может увеличиваться в размере после его создания. Когда массив создается с использованием ArrayList, создается динамический массив, который может увеличиваться и уменьшаться в размере по мере необходимости. Стандартный класс Collection ArrayList расширяет интерфейс List.