我想知道从链接哈希集中删除元素的不同方法。我尝试了以下代码
LinkedHashSet<String> lhs = new LinkedHashSet<String>();
for(int i=0;i<10;i++)
lhs.add(String.valueOf(i));
Iterator<String> it=lhs.iterator();
System.out.println("removed?=="+lhs.remove("1"));
while(it.hasNext())
{
System.out.println("lhs"+it.next());
}
我得到以下输出
removed?==true
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(Unknown Source)
at java.util.LinkedHashMap$KeyIterator.next(Unknown Source)
at preac.chapter1.Start.main(Start.java:321)
我想念什么?提前致谢。
PS我也尝试过 iterator.remove() 方法但得到了非法状态异常
编辑
我才知道我必须使用迭代器删除方法。那么 Link Hash Set 删除方法有什么用呢?在什么情况下我们应该使用这种方法?