增强for循环底层是调用迭代器进行遍历的,按理来说遍历过程中不可以用集合对集合元素进行操作。
但list集合遍历(foreach或者迭代)的时候可以对倒数第二个元素进行删除
set集合遍历的时候可以对最后一个元素进行删除。
(感兴趣的同学可以自己验证下,知道原因的大神也请告知下~)
import java.util.HashSet;
import java.util.Iterator;
public class ForDemo {
public static void main(String[] args) {
HashSet<String> al = new HashSet<String>();
al.add("a1");
al.add("a2");
// al.add("a3");
// al.add("a4");
// al.add("a5");
// al.add("a6");
Iterator<String> it = al.iterator();
while(it.hasNext()){
String s = it.next();
if("a2".equals(s)){
al.remove(s);
}
}
// for(String s:al){
// if(s.equals("a2")){
// al.remove("a2");
// }
// }
System.out.println(al);
}
}
|
|