Ste*_*anG 5 arrays erlang comparison performance list
我是 Erlang 新手,所以我正在编写一个示例程序,并努力决定是否应该使用数组或列表。两者都很容易创建和处理,但我没有得到:
array:set(array:size(A),"a",A)要走的路吗?lists:member()。我是否必须迭代整个数组并检查每个元素?最后,就性能而言,哪一个更好?
列表是 Erlang VM 原生的数据类型。数组被实现为嵌套元组的结构。
列表可用于模式匹配。数组不应该是这样。
正如 @zxq9 提到的,应该使用列表,除非明显不应该使用列表。我认为您应该使用数组的唯一时间是对集合执行大量随机更新时。否则就使用一个列表。
array:set(array:size(A),"a",A)。可以使用 来完成添加到列表之前["a"|A]。当然,如果您想附加到列表中,您可以运行lists:reverse,["a"|A]然后再调用lists:reverse.array:sparse_to_list(A))。然后调用lists:member/2结果列表。有关数组实现的更多信息,请访问:https ://stackoverflow.com/a/16464349/1245380