我测试的时候发现
HashSet<Integer> copySet=new HashSet<>(set);
Iterator<Integer> iterator=copySet.iterator();
这个copySet必不可少而且在while中删除掉的都是set中的元素,我打断点的时候发现set集合并不会改变copySet集合
但是我并没有使用过copySet这个集为什么他的存在还是必要的呢?
这个程序已经通过测试了,这里未能通过的原因是我少导入了一个包
但是我还是感到很困惑
为什么我不能写如下这样的代码呢?
Iterator<Integer> iterator=set.iterator();
while (iterator.hasNext()){
int x=iterator.next();
if(x>10)
set.remove(x);
package zh.codegym.task.task08.task0814;
import java.util.HashSet;
import java.util.Set;
/*
大于 10?你不适合我们
*/
public class Solution {
public static HashSet<Integer> createSet() {
// 在此编写你的代码
HashSet<Integer> set=new HashSet<>();
for(int i=5;i<25;i++)
set.add(i);
return set;
}
public static HashSet<Integer> removeAllNumbersGreaterThan10(HashSet<Integer> set) {
// 在此编写你的代码
HashSet<Integer> copySet=new HashSet<>(set);
Iterator<Integer> iterator=copySet.iterator();
while (iterator.hasNext()){
int x=iterator.next();
if(x>10)
set.remove(x);
}
return set;
}
public static void main(String[] args) {
}
}