如何从java中删除链接哈希集中的元素?

sar*_*sar 2 java linkedhashset

我想知道从链接哈希集中删除元素的不同方法.我试过以下代码

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());
}
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出

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)
Run Code Online (Sandbox Code Playgroud)

我想念的是什么?提前致谢.

PS我也试过iterator.remove()方法,但得到了非法状态异常

编辑

我刚才知道我必须使用iterator remove方法.然后使用Link Hash Set删除方法是什么?在哪些情况下我们应该使用这种方法?

Mas*_*dul 6

尝试使用Iterator.remove如下所示删除元素,

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()) {
   String value=it.next();
   if("1".equals(value)){
      it.remove();
   }
   else{
      System.out.println("lhs  "+value);// Print the other value except 1
    }
 }
System.out.println(lhs);// After remove see the result here.
Run Code Online (Sandbox Code Playgroud)