Ruby 使用数组、哈希和集合?

Ruby 使用数组、哈希和集合?,ruby,hash,set,Ruby,Hash,Set,我想创建一个“流程”对象,其中包含几个不同的字段,这些字段由唯一的流程ID标识。我需要能够创建这些对象的可变数量的实例,更新特定对象中的字段,并在使用完对象实例后删除该对象实例,同时保留该对象的其他实例。我预计任何时候流程对象的实例都少于5000个 我阅读了有关数组、散列和集合的内容,但我不确定哪一个对象最适合跟踪我的流程对象的多次出现,并有效地查找特定流程对象的正确实例以进行更新或删除 我一直在考虑对进程ID使用哈希,但哈希类有一个值,我不认为我的进程对象是一个值 我会继续研究,但如果能朝着正

我想创建一个“流程”对象,其中包含几个不同的字段,这些字段由唯一的流程ID标识。我需要能够创建这些对象的可变数量的实例,更新特定对象中的字段,并在使用完对象实例后删除该对象实例,同时保留该对象的其他实例。我预计任何时候流程对象的实例都少于5000个

我阅读了有关数组、散列和集合的内容,但我不确定哪一个对象最适合跟踪我的流程对象的多次出现,并有效地查找特定流程对象的正确实例以进行更新或删除

我一直在考虑对进程ID使用哈希,但哈希类有一个值,我不认为我的进程对象是一个值

我会继续研究,但如果能朝着正确的方向努力,我将不胜感激

先谢谢你

我一直在考虑进程ID的哈希,但是哈希类有一个值,我不认为我的进程对象是一个值

您可以在Ruby散列中存储任何内容


这使得散列成为存储信息的绝佳方法。

有称为Process#pid和Thread::list的简洁方法:散列的每个成员都有一个键和一个值。正如您所建议的,在您的应用程序中,关键是进程ID。也许您误解了“值”在本文中的含义。它是任何Ruby对象,可以是文本,比如7或:cat,或者像哈希数组这样复杂的东西,其键是字符串,值是方法。实际上,集合比散列具有更多类似数组的行为。对于进程表,我可能会使用散列,因为它基本上是随机访问的,所以速度最快。通过普通的散列赋值和使用,添加和删除元素很容易。Cary,你是对的,在这种情况下,我不清楚“值”是什么,也不确定值可以是对象,而不是单个变量或文字(并且没有找到任何示例显示这一点)我认为散列将对散列键执行ticket-processID,并将对象的整个实例作为值。