作者:鸣丸子圓的睿哥 | 来源:互联网 | 2023-01-31 12:18
我有一些String元素的HashSet集合,我如何在特定位置添加新元素?我看到了文档,但没有找到任何可以做到的方法.
1> Willem Van O..:
标准 的一个方面HashSet
是它是无序的.因此,您无法在特定索引处插入元素.或者如文档中指定的那样:
此类实现Set
接口,由哈希表(实际上是HashMap
实例)支持.它不能保证集合的迭代顺序 ; 特别是,它不保证订单会随着时间的推移保持不变.该类允许null
元素.
当您执行插入,删除等操作时,可能HashSet
会进行重新散列.结果,for(...)
循环中元素的顺序可以完全改变.
存在一个扩展的Hashset
,在LinkedHashSet
其保持它们被所述元素的顺序插入.
TreeSet
另一方面,A 使用树,并根据顺序关系(在该元素之前发射小于另一个对象的对象)对元素进行排序.
如果你可以在一个随机索引处插入一个元素会很奇怪,因为这会导致至少某些具有特定索引的操作的O(n)时间.通常使用a HashSet
在O(1)中执行插入,移除等(平均时间).