我们可以使用其中任何一个(包括 List、ArrayList、Dictionary、Hashtable、Stack、Queue)来保存值或对其他对象的引用作为集合。
但是,我的问题是什么时候使用哪个?
我们可以使用其中任何一个(包括 List、ArrayList、Dictionary、Hashtable、Stack、Queue)来保存值或对其他对象的引用作为集合。
但是,我的问题是什么时候使用哪个?
列表允许重复项,可以通过索引访问,并且支持线性遍历。
ArrayList - 不支持泛型类型的基于数组的列表。它不强制执行类型安全,通常应避免使用。
List - 支持泛型类型并强制类型安全的数组列表。由于它是不连续的,它可以在不为整个列表重新分配内存的情况下增长。这是比较常用的列表集合。
哈希是查找,您可以在其中为列表中的每个项目提供一个“键”,稍后将用于检索它。将哈希想象为表索引,您可以在其中提出诸如“我将通过此字符串值查找此对象。不允许重复键。
HashTable - 一个基本的键值对映射,其功能类似于索引列表。
Dictionary - 支持泛型类型并强制类型安全的哈希表。
队列控制如何访问列表中的项目。您通常在特定方向(从前面或后面)从队列中推送/弹出记录。中间不用于随机访问。
Stack - 一个 LIFO(后进先出)列表,您可以在其中推送/弹出记录。
队列- 一个 FIFO(先进先出)列表,您可以在其中将记录推送到顶部并将它们从底部弹出。
以下是它们的一些用途。
清单:如果您只想要一个清单而不关心任何重复项,即人员清单、购物清单、生活中要做的事情清单。
队列:如果你想模拟一个队列,例如,在医院你有一个队列和优先级队列(在急诊科)。分诊将确定谁处于危急状态并需要接受治疗。
另一个例子是购物队列,排队的第一个人“通常”是第一个结账的人。
堆栈:在您将值传递给函数/方法时,在您的内部存储器中使用它们来推送和弹出值。
另一个有趣的用途是,在视频游戏库存方法中,您可以在其中拿起一个项目(推)到堆栈上,然后从堆栈中放下一个项目(弹出)。
哈希/字典:这些通常用于数据库中,用于查找和索引。
根据您要模拟的内容,我同意其他人的观点,阅读数据结构很方便。一本书有帮助,但互联网也有丰富的信息。