Java: разница между коллекцией и "структурой данных"

В Java я не понимаю коллекцию и структуру данных. Мне кажется, что сбор относится к списку, множеству, карте, очереди, а "структура данных" относится к структуре данных, используемой для реализации коллекции, такой как массив, связанный список или дерево. Например, ArrayList и LinkedList являются коллекциями, но их структура данных - это соответственно массив и связанный список. Правильно ли, или я смущаю термины?

Ответ 1

Структура данных - это то, как данные представлены внутри хранилища в памяти. Коллекция - это способ ее доступа. Я подчеркиваю слово "может".

Если вы сохраняете данные в LinkedList и сортируете их, производительность снижается. Тот же алгоритм, если вы используете ArrayList, повысит производительность. Просто изменив способ, которым его представленный в памяти поможет различным факторам.

Вы можете "получить" доступ к нему с помощью представления коллекции, вы также можете использовать "индекс" для доступа к данным. Вы также можете "get", getNext, getPrev.

Ваша путаница между внутренним хранилищем и доступом к хранилищу. Отделите 2.

Ответ 2

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

Ответ 3

Структура данных имеет понятие какой-либо схемы, например. в представлении дома будут перечислены такие вещи, как квадратные метры, спальни и т.д. Что обычно означало там: как структура домена представлена ​​в виде данных?

Коллекция, как говорит Джефф, представляет собой набор объектов. Коллекции имеют структуру, но их структура является исключительно организационной, например. Дерево или Список или LinkedList.