刚才看 ruby hash table 实现,翻到:
http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/
原先知道 ruby hash table 是保留插入顺序的,一直不知道是如何实现的。
上面给出答案:hash table 里面每个元素保存的方式是采用链表,然后这个链表结构st_table_entry
里面有 2 个指针st_table_entry *fore, *back
,
然后就是说 hash table 同时也是一个双向链表!
真的是非常有意思。