Список класса ArrayList против против против против против словаря хеш-таблица, стек, очередь? [закрытый]


мы можем использовать любой из них (включая List, ArrayList, Dictionary, Hashtable, Stack, Queue) для хранения значения или ссылки на другие объекты в виде коллекции.

но, мой вопрос в том, какой из них используется, когда?

3 58

3 ответа:

списки

списки позволяют дублировать элементы, могут быть доступны по индексу и поддерживают линейный обход.

  • ArrayList - список на основе массива, который не поддерживает универсальные типы. Он не обеспечивает безопасность типов и, как правило, следует избегать.

  • список - список массивов, который поддерживает универсальные типы и обеспечивает безопасность типов. Поскольку он не является непрерывным, он может расти в размере без перераспределения память для всего списка. Это наиболее часто используемая коллекция списков.

хэши

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

  • список может содержать повторяющиеся объекты

  • ArrayList это просто для совместимости с более старыми версиями фреймворка, где IList не существует

  • словарь используется для хранения пар ключ/значение. Вы не можете иметь дубликаты ключей.

  • Hashtable это в основном список без возможности дублирования (и лучшей производительности в некоторых сценарии)

  • стек хранит объекты в порядке их добавления (через Push()), и когда вы получаете объект (через Pop()) Он удаляется из стека способом LIFO.

  • очереди очень похоже на стек, за исключением того, что это FIFO.

вот некоторые виды их использования.

список: если вы просто хотите список и не заботитесь о каких-либо дубликатов, то есть список людей, список покупок, Список вещей, чтобы сделать в жизни.

очереди: если вы хотите смоделировать очередь, например, в больнице у вас есть очередь, а также приоритетная очередь (в отделениях неотложной помощи). Сортировка определит, кто находится в критическом состоянии и нуждается в лечении.

еще один пример торговая очередь, первый человек в очереди "обычно" первым оформляет заказ.

стеки: используется в вашей внутренней памяти, чтобы нажимать и всплывать значения, когда вы передаете их в функции/методы.

еще одно интересное использование-в методе инвентаризации видеоигр, где вы можете забрать элемент (push) в стек и сбросить элемент (pop) из стека.

Хэш/Словарь: обычно используется в базе данных, для поиска и индексации.

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