Elixir中阵列最接近的东西

问题描述:

Elixir中阵列最接近什么。我的意思是数组,我可以在一段时间内访问一个容器。Elixir中阵列最接近的东西

我已经看了元组,而是根据documentation

元组并不意味着作为一个“收藏”型(也由于缺乏可枚举的实现的建议协议元组):它们通常意味着用作多个元素的固定大小的容器。

我真正想要做的: 我想存储ñ过程中的阵列并定期选择一个随机过程,并发送一条消息。 我也接受其他建议。

+0

您是否希望能够移除和插入进程? – Dogbert

+0

@Dogbert:我会添加一次流程,但我需要删除流程(不太频繁的操作)来模拟节点下降。 –

+1

元组有'O(n)'删除。我会把它存储在一个Map中,它需要'O(log n)'来访问/插入/删除。在Erlang/Elixir中没有数据结构,具有“O(1)”访问并且比'O(n)'删除更快。 – Dogbert

我结束了使用的listregistry的组合,因为我用流程工作。我得到了很多Elixir forum回应这我下面的清单以供将来参考:在复制整个结构存储在内存中,不断的访问时间连续,编辑结果:

  1. Tuple不是实现枚举协议。
  2. linked-List:O(n)访问时间,前缀比后缀更便宜。实现可枚举协议。
  3. Map:O(log n)读取,写入,删除时间。还实现Enumerable协议。
  4. :arrayarray来自Erlang的模块。
  5. registry :(只适用于存储过程)本地,分散和可扩展的键值过程存储。

另外,注2和3(列表和地图)are persistent data structures

药剂具有经由二郎阵列模块:http://erlang.org/doc/man/array.html

+2

虽然这种性能特征与命令式语言中的数组完全不同,但名称是相同的。 – Dogbert