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

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

7 ответов


во-первых: a List это Collection. Это специализированный


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

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

java collections


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

коллекция

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

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

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

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


List и Set-это два подкласса коллекции.

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

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

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


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

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


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


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