迭代时删除和添加元素到ConcurrentSkipListSet

时间:2012-07-16 16:50:06

标签: java collections

在迭代它时向ConcurrentSkipListSet删除和添加元素是否安全:

ConcurrentSkipListSet<Element> set = new ConcurrentSkipListSet<Element>(myComparator);
for(Element e : set)
{
   if(condition)
   {
      set.remove(e);
      set.add(anotherE);
   }
}

其中eanotherE等于提供的比较器。

1 个答案:

答案 0 :(得分:2)

是的,这是安全的。来自java docs

  

插入,删除和访问操作可以安全地并发执行   通过多个线程。迭代器是弱一致的,返回   在某个时刻或之后反映集合状态的元素   创建迭代器。他们不扔   ConcurrentModificationException,可以同时进行   其他行动。