Каково различие между Набором и Списком в Java?

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

145
задан cs95 30 March 2018 в 01:59
поделиться

5 ответов

Во-первых: список - это Коллекция . Однако это специализированная Коллекция .

Коллекция - это просто собрание предметов. Вы можете добавлять, удалять, перебирать и запрашивать, сколько всего там материала.

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

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

Есть и другие специализированные Коллекции, например Набор , который добавляет особенность, что он никогда не будет содержать один и тот же элемент дважды.

245
ответ дан 23 November 2019 в 22:45
поделиться

Коллекция - это корневой интерфейс иерархии коллекций Java. Список - это один субинтерфейс, который определяет упорядоченную коллекцию, другие субинтерфейсы - это Очередь , в которой обычно хранятся элементы, готовые к обработке (например, стек ).

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

java collections

172
ответ дан 23 November 2019 в 22:45
поделиться

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

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

2
ответ дан 23 November 2019 в 22:45
поделиться

Java API - лучший ответ на этот вопрос

Коллекция

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

List (расширяет Collection)

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

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

7
ответ дан 23 November 2019 в 22:45
поделиться

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

2
ответ дан 23 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: