Erlang ETS集保持顺序?

Erlang ETS集保持顺序?,erlang,ets,Erlang,Ets,ETS集合是否保证元组的内部顺序与插入顺序相同?例如:我通过每秒插入一个元组来保存日志,时间戳是关键。在本例中,set是否保证元组按键排序 我知道ordered_set可以实现我的愿望,但它有一个插入开销。因此,如果set保持插入顺序,那么在我的示例中使用set将更加有效。那么,是吗?:-) 提前感谢,, Nikola即使ETS集合满足了您今天的假设,也不能保证它将来会继续满足您的假设——特别是当有一个有序集合具有您所需的确切属性时。否,对于表类型set,无法保证键的排序顺序。将它们散列,然后使

ETS集合是否保证元组的内部顺序与插入顺序相同?例如:我通过每秒插入一个元组来保存日志,时间戳是关键。在本例中,set是否保证元组按键排序

我知道ordered_set可以实现我的愿望,但它有一个插入开销。因此,如果set保持插入顺序,那么在我的示例中使用set将更加有效。那么,是吗?:-)

提前感谢,,
Nikola

即使ETS
集合
满足了您今天的假设,也不能保证它将来会继续满足您的假设——特别是当有一个
有序集合
具有您所需的确切属性时。

否,对于表类型
set
,无法保证键的排序顺序。将它们散列,然后使用散列值将元素放入表中。该表偶尔也会调整大小并重新调整,因此顺序会发生变化。所以不,你很幸运。

@dijxtra:是的,
set
bag
是散列的,而
ordered\u set
是排序的二叉树。我想知道。。。如果您需要一个按键比较的有序索引,那么您能比O(lgn)最坏情况下的时间更快吗?当然,您可以摊销插入并使用提取支付(例如,像配对堆那样),但仍然。。。