gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 20:15:53 24 4
gpt4 key购买 nike

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

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)

我想念什么?提前致谢。

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

编辑

我刚刚知道我必须使用迭代器删除方法。那么 Link Hash Set 删除方法有什么用途呢?什么情况下我们应该使用这个方法呢?

最佳答案

尝试使用 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.

关于java - 如何从java中的链接哈希集中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com