Java集合插入:设置与列表

Wil*_*ill 10 java collections list insert set

我正在考虑用大量独特的对象填充集合.与List(比如ArrayList)相比,Set中的插入(比如HashSet)的成本如何?

我的感觉是集合中的重复消除可能会导致轻微的开销.

Kon*_*rus 10

没有"重复消除",例如与所有现有元素进行比较.如果你插入哈希集,它实际上是哈希码的项目字典.除非已经存在具有相同哈希码的项目,否则没有重复检查.给定一个合理的(分布均匀的)哈希函数,它并没有那么糟糕.

正如Will所指出的,因为字典结构HashSet可能比a慢一点ArrayList(除非你想在现有元素之间插入").它也有点大.我不确定这是一个显着的差异.