Ответы:
Во-первых: а List
есть Collection
. Это специализированный Collection
, однако.
А Collection
это просто: коллекция предметов. Вы можете добавлять вещи, удалять вещи, перебирать вещи и запрашивать, сколько там вещей.
A List
добавляет к ней информацию об определенной последовательности вещей: вы можете получить элемент в позиции n , вы можете добавить элемент в позиции n , вы можете удалить элемент в позиции n .
В a Collection
вы не можете сделать это: «5-й элемент в этой коллекции» не определен, потому что нет определенного порядка.
Существуют и другие специализированные коллекции, например, a, Set
добавляющая возможность, что она никогда не будет содержать один и тот же элемент дважды.
Collection
является корневым интерфейсом к иерархии java Collections. List
один подчиненный интерфейс, который определяет упорядоченную коллекцию, другие подчиненные интерфейсы, как Queue
правило, будут хранить элементы, готовые для обработки (например, стек ).
Следующая диаграмма демонстрирует взаимосвязь между различными типами коллекций Java:
Map
это не так Collection
.
Java API - лучший ответ на этот вопрос
Коллекция
Корневой интерфейс в иерархии коллекции. Коллекция представляет собой группу объектов, известных как ее элементы. Некоторые коллекции допускают дублирование элементов, а другие - нет. Некоторые заказаны, а другие не заказаны. JDK не предоставляет каких-либо прямых реализаций этого интерфейса: он предоставляет реализации более конкретных подынтерфейсов, таких как Set и List. Этот интерфейс обычно используется для передачи коллекций и манипулирования ими там, где требуется максимальная универсальность.
Список (расширяет коллекцию)
Упорядоченная коллекция (также известная как последовательность). Пользователь этого интерфейса имеет точный контроль над тем, где в списке каждый элемент вставлен. Пользователь может получить доступ к элементам по их целочисленному индексу (позиции в списке) и искать элементы в списке.
В отличие от наборов, списки обычно допускают дублирование элементов. Более формально, списки обычно допускают пары элементов e1 и e2, например e1.equals (e2), и они обычно допускают множественные нулевые элементы, если они вообще допускают нулевые элементы. Не исключено, что кто-то захочет реализовать список, который запрещает дублирование, создавая исключения времени выполнения, когда пользователь пытается вставить их, но мы ожидаем, что такое использование будет редким.
Список и Набор - два подкласса Коллекции.
В списке данные располагаются в определенном порядке.
В Set он не может содержать одни и те же данные дважды.
В Collection он просто хранит данные без определенного порядка и может содержать повторяющиеся данные.
Коллекция - это высокоуровневый интерфейс, описывающий объекты Java, который может содержать коллекции других объектов. Не очень конкретно о том, как к ним осуществляется доступ, могут ли несколько копий одного и того же объекта существовать в одной коллекции или важен ли порядок. Список специально заказан коллекция объектов. Если вы поместите объекты в Список в определенном порядке, они останутся в этом порядке.
И решить, где использовать эти два интерфейса, гораздо менее важно, чем решить, какую конкретную реализацию вы используете. Это повлияет на время и пространство вашей программы. Например, если вам нужен список, вы можете использовать ArrayList или LinkedList, каждый из которых будет иметь значение для приложения. Для других типов коллекций (например, Наборы) применяются аналогичные соображения.