我测试的时候发现 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);