В чем разница между Collection и List на Java?

В чем разница между Collection и List в Java? Когда и что я должен использовать?

Ответ 1

Прежде всего: List является Collection. Однако это специализированный Collection.

A Collection - это просто: набор элементов. Вы можете добавлять вещи, удалять вещи, перебирать материал и запрашивать, сколько там вещей.

A List добавляет к нему информацию о определенной последовательности вещей: вы можете получить элемент в позиции n, вы можете добавить элемент в позицию n, вы можете удалить элемент в позиции n.

В a Collection вы не можете этого сделать: "5-й элемент в этой коллекции" не определен, потому что нет определенного порядка.

Существуют и другие специализированные коллекции, например Set, который добавляет функцию, в которой он никогда не будет содержать один и тот же элемент дважды.

Ответ 2

Collection является корневым интерфейсом к иерархии коллекций java. List - это один дополнительный интерфейс, который определяет упорядоченную коллекцию, другие вспомогательные интерфейсы Queue, который обычно будет хранить элементы, готовые к обработке (например, stack).

Следующая диаграмма демонстрирует взаимосвязь между различными типами коллекции java:

java collections

Ответ 3

Java API лучше всего ответить на этот

Collection

Корневой интерфейс в коллекции иерархия. Коллекция представляет собой группа объектов, известная как ее элементы. Некоторые коллекции позволяют дублирующие элементы и другие нет. Некоторые заказываются, а другие неупорядочены. JDK не предоставляет прямых реализации этого интерфейса: обеспечивает реализацию более конкретные подинтерфейсы, такие как Set и Список. Этот интерфейс обычно используется проходить собрания вокруг и манипулировать ими, где максимум требуется общность.

Список (расширяет коллекцию)

Упорядоченная коллекция (также известная как последовательность). Пользователь этого интерфейса имеет точный контроль над тем, где в список каждого элемента вставлен. пользователь может получить доступ к элементам целочисленный индекс (позиция в списке), и поиск элементов в списке.

В отличие от наборов, списки обычно позволяют повторяющиеся элементы. Более формально, списки обычно допускают пары элементы e1 и e2 такие, что e1.equals(e2), и они обычно разрешить несколько нулевых элементов, если они разрешить нулевые элементы вообще. Это не Непостижимо, что кто-то может пожелать для реализации списка, который запрещает дублирования, путем запуска времени выполнения исключения, когда пользователь пытается вставьте их, но мы ожидаем, что это использование быть редкими.

Ответ 4

Коллекция представляет собой интерфейс высокого уровня, описывающий объекты Java, которые могут содержать коллекции других объектов. Это не очень специфично в отношении того, как к ним обращаются, могут ли множественные копии одного и того же объекта существовать в одной коллекции или важно ли порядок. Список - это упорядоченный набор объектов. Если вы поместите объекты в список в определенном порядке, они останутся в этом порядке.

И решить, где использовать эти два интерфейса, гораздо менее важно, чем решить, какова конкретная реализация, которую вы используете. Это будет иметь последствия для времени и пространства вашей программы. Например, если вам нужен список, вы можете использовать ArrayList или LinkedList, каждый из которых будет иметь последствия для приложения. Для других типов коллекций (например, Sets) применяются аналогичные соображения.

Ответ 5

Collection - это супер интерфейс List, поэтому каждый список Java также является экземпляром коллекции. Коллекции выполняются только последовательно (и в определенном порядке), тогда как список позволяет получить доступ к элементу в определенной позиции с помощью метода get(int index).

Ответ 6

Коллекция является основным интерфейсом иерархии коллекций Java, а List (Sequence) является одним из вспомогательных интерфейсов, который определяет упорядоченную коллекцию.

Ответ 7

Список и набор - это два подкласса коллекции.

В списке данные находятся в определенном порядке.

В Set он не может содержать одни и те же данные дважды.

В коллекции он просто хранит данные без определенного порядка и может содержать повторяющиеся данные.