我知道在Java语言中,HashMap
是最常用于实现Ruby Hash
等函数的。 Java HashMap
使用名为“与链接列表分开链接”的数据结构:http://en.wikipedia.org/wiki/Hash_table
在哪里可以找到Ruby哈希的实现? Ruby Hash
正在使用什么数据结构和算法?
答案 0 :(得分:2)
请在documentation中查看,只需选择方法,然后点击链接:click to toggle source
,它会显示来源。
static VALUE
rb_ary_s_create(int argc, VALUE *argv, VALUE klass)
{
VALUE ary = ary_new(klass, argc);
if (argc > 0 && argv) {
ary_memcpy(ary, 0, argc, argv);
ARY_SET_LEN(ary, argc);
}
return ary;
}
::[]
hash-table #[]
类的hash-table单例方法。
array array类的hash-table实例方法。
代码表示将为Hash
变量分配零大小的{{3}}:
Hash
{{3}}和{{3}}(arr
类)的默认尺寸为arr = []
arr
# => []
:
Hash
答案 1 :(得分:1)
这会有帮助吗?
http://www.ruby-doc.org/core-2.1.0/Array.html#method-c-new
arr = []
与arr = Array.new(0, nil)
相同,其中0是数组的大小。
点击切换源并向下滚动以查看代码。
对于Hash,请查看以下文档: