Список против очереди против набора коллекций в Java - PullRequest
23 голосов
/ 15 октября 2010

В чем разница между списком, очередью и набором?

1 Ответ

62 голосов
/ 15 октября 2010

Вкратце:

A list - упорядоченный список объектов, в которых один и тот же объект может появляться несколько раз. Например: [1, 7, 1, 3, 1, 1, 1, 5]. Имеет смысл поговорить о «третьем элементе» в списке. Вы можете добавить элемент в любом месте списка, изменить элемент в любом месте списка или удалить элемент из любой позиции в списке.

A queue также заказывается, но вы будете когда-либо касаться элементов только с одного конца. Все элементы вставляются в «конец» и удаляются из «начала» (или заголовка) очереди. Вы можете узнать, сколько элементов находится в очереди, но вы не можете узнать, что, скажем, «третий» элемент. Вы увидите это, когда доберетесь туда.

A set не упорядочено и не может содержать дубликаты. Любой данный объект либо есть, либо нет в наборе. {7, 5, 3, 1} точно такой же набор, как {1, 7, 1, 3, 1, 1, 1, 5}. Вы снова не можете запросить «третий» элемент или даже «первый» элемент, поскольку они не в каком-либо определенном порядке. Вы можете добавлять или удалять элементы, и вы можете узнать, существует ли определенный элемент (например, «есть 7 в этом наборе?»)

...