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

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

3 ответов


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

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

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

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


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


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

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