黑马程序员技术交流社区

标题: 发现一个很奇怪的问题 [打印本页]

作者: Kris    时间: 2015-10-31 07:36
标题: 发现一个很奇怪的问题
增强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);
}
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2