I need to access to a Hash in the same order that It was created:
[...]
is that possible?
First off, this is not a hash. Hashes are inherently unordered. Hashes
provide amortized O(1) insertion and retrieval of elements by key, and
that's it. If you need an ordered set of pairs, use an array of arrays.
Yes, this is a pet peeve of mine.
There was an OrderedHash that someone wrote, but needing it is an
indication of a design problem. It has also been obsoleted by the
Dictionary in Ruby Facets.
One could argue that, like Java, there should be a standard Dictionary
interface that Hash implements, and that there should be another
implementation that preserves order without guaranteeing anything about
performance. That's not how things stand right now.
Thanks
--Greg
···
On Fri, May 16, 2008 at 01:22:56AM +0900, Mario Ruiz wrote:
No way with standard Hash, and it shouldn't be really. You can use an array instead of a hash, and Array#assoc to retrieve entries based on keys.
Gennady.
···
-----Original Message-----
From: mario@betware.com [mailto:mario@betware.com]
Sent: Thursday, May 15, 2008 9:23 AM
To: ruby-talk ML
Subject: Access Hash in the same order that was created
I need to access to a Hash in the same order that It was created: