gpt4 book ai didi

java - 删除 TreeSet 的匹配元素

转载 作者:行者123 更新时间:2023-11-30 07:12:02 26 4
gpt4 key购买 nike

我正在尝试删除所有可被 TreeSet 中的某个索引整除的数字,并且我正在使用以下代码

    TreeSet<Integer> primes = new TreeSet();
Iterator<Integer> iter = primes.iterator();

int n = 100;
for (int i = n; i > 1; i--){
primes.add(i);
}

for (int i = 2; i < Math.sqrt(n); i ++){
while (iter.hasNext()){
int next = iter.next();
if (next % i == 0){
primes.remove(next);
}
}
}
System.out.println(primes);

但由于某种原因,集合中没有元素被删除

最佳答案

Iterator.remove() 是在迭代期间修改集合的唯一安全方法。使用 iter.remove();

  while (iter.hasNext()){
int next = iter.next();
if (next % i == 0){
iter.remove();
}
}

从基础集合中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果在迭代过程中以除调用此方法以外的任何方式修改基础集合,则迭代器的行为是未指定的。来自 ITERATOR

关于java - 删除 TreeSet 的匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20635108/

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