Elixir中阵列最接近的东西
问题描述:
Elixir中阵列最接近什么。我的意思是数组,我可以在一段时间内访问一个容器。Elixir中阵列最接近的东西
我已经看了元组,而是根据documentation:
元组并不意味着作为一个“收藏”型(也由于缺乏可枚举的实现的建议协议元组):它们通常意味着用作多个元素的固定大小的容器。
我真正想要做的: 我想存储ñ过程中的阵列并定期选择一个随机过程,并发送一条消息。 我也接受其他建议。
答
我结束了使用的list
和registry
的组合,因为我用流程工作。我得到了很多Elixir forum回应这我下面的清单以供将来参考:在复制整个结构存储在内存中,不断的访问时间连续,编辑结果:
-
Tuple
。 不是实现枚举协议。 - linked-
List
:O(n)访问时间,前缀比后缀更便宜。实现可枚举协议。 -
Map
:O(log n)读取,写入,删除时间。还实现Enumerable协议。 -
:array
:array
来自Erlang的模块。 -
registry
:(只适用于存储过程)本地,分散和可扩展的键值过程存储。
另外,注2和3(列表和地图)are persistent data structures。
您是否希望能够移除和插入进程? – Dogbert
@Dogbert:我会添加一次流程,但我需要删除流程(不太频繁的操作)来模拟节点下降。 –
元组有'O(n)'删除。我会把它存储在一个Map中,它需要'O(log n)'来访问/插入/删除。在Erlang/Elixir中没有数据结构,具有“O(1)”访问并且比'O(n)'删除更快。 – Dogbert