В Java я не понимаю коллекцию и структуру данных. Мне кажется, что сбор относится к списку, множеству, карте, очереди, а "структура данных" относится к структуре данных, используемой для реализации коллекции, такой как массив, связанный список или дерево. Например, ArrayList и LinkedList являются коллекциями, но их структура данных - это соответственно массив и связанный список. Правильно ли, или я смущаю термины?
Java: разница между коллекцией и "структурой данных"
Ответ 1
Структура данных - это то, как данные представлены внутри хранилища в памяти. Коллекция - это способ ее доступа. Я подчеркиваю слово "может".
Если вы сохраняете данные в LinkedList и сортируете их, производительность снижается. Тот же алгоритм, если вы используете ArrayList, повысит производительность. Просто изменив способ, которым его представленный в памяти поможет различным факторам.
Вы можете "получить" доступ к нему с помощью представления коллекции, вы также можете использовать "индекс" для доступа к данным. Вы также можете "get", getNext, getPrev.
Ваша путаница между внутренним хранилищем и доступом к хранилищу. Отделите 2.
Ответ 2
Структура данных - это общий термин для объекта, который представляет собой некоторый вид данных, поэтому связанный список, массив и т.д. - все структуры данных. Коллекция в смысле Java относится к любому классу, который реализует интерфейс Collection
. Коллекция в общем смысле - это всего лишь группа объектов.
Ответ 3
Структура данных имеет понятие какой-либо схемы, например. в представлении дома будут перечислены такие вещи, как квадратные метры, спальни и т.д. Что обычно означало там: как структура домена представлена в виде данных?
Коллекция, как говорит Джефф, представляет собой набор объектов. Коллекции имеют структуру, но их структура является исключительно организационной, например. Дерево или Список или LinkedList.