在ruby中列出实现?

Ton*_*ngo 3 ruby arrays performance list

我对Ruby中对Array类的理解有点挣扎.我在Google上看到一个Array类实际上更像是一个列表,但我似乎无法找到它实际上是如何工作的.

我真的很关心性能问题,因为我必须处理大型排序列表,而且我不想跨越整个数组来向它添加单个元素.

所以我想知道是否有任何真实而清晰的列表实现(例如在caml中),我也在寻找关于如何实现Array方法的优秀文档,关于优化问题.

谢谢!

emb*_*oss 13

Ruby数组提供完整的列表界面:

  • push/<<用于在末尾添加元素
  • each为列表遍历提供了一个迭代器
  • sort允许您使用可选块对项目进行排序以用于自定义比较器
  • ...

所以没有明显的需要有一个特殊的List类或模块 - 以Java为例,ArrayList如果我们需要一直使用,我们最终会使用List它,因为它为我们提供了良好的性能以及通过索引访问元素的额外好处.因此Ruby(类似于其他语言如Python,PHP或LUA)试图通过它提供了三种让事情变得简单有关于集合类型- Array,Hash以及Set-因此拥有丰富的接口,可以很容易效仿其他集合类型,如列表,队列或者Deque等

如果您想了解有关实现的详细信息,我建议您只需下载Ruby源代码并调查相应的文件(对于MRI,它位于顶级目录中的array.c).