增强for循环

作者: 张轻舟 | 来源:发表于2019-05-31 20:40 被阅读0次

    使用增强for循环可以简化数组和Collection集合的遍历,格式:

        for(元素数据类型 变量 : 数组或者Collection集合) {
            使用变量即可,该变量就是元素
        }
    

    例:

    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 增强for循环
     *
     */
    public class ForTest01 {
    
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
    
            //增强for循环,优点是可以简化遍历
            for(String s : list){
                System.out.println(s);
            }
    
        }
    
    }
    

    集合框架中的三种迭代方式删除数据
    1.普通for循环,可以删除,注意让索引做自减运算
    2.迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
    3.增强for循环不能删除

    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * 集合框架中的三种迭代方式删除数据
     *
     */
    public class ForTest02 {
    
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("a");
            list.add("b");
            list.add("b");
            list.add("c");
            list.add("d");
    
            //1,普通for循环删除,索引做自减运算
            for(int i = 0; i < list.size(); i++) {
                if("b".equals(list.get(i))) {
                    list.remove(i);        
                    i--;
                }
            }
    
            //2,迭代器删除
            for(ListIterator<String> iter = list.listIterator(); iter.hasNext();){
                if("b".equals(iter.next())) {
                    iter.remove();
                }
            }
            //3,增强for循环不能删除,ConcurrentModificationException
            for (String string : list) {
                if("b".equals(string)) {
                    list.remove("b");
                }
            }
            System.out.println(list);
        }
    
    }
    

    相关文章

      网友评论

        本文标题:增强for循环

        本文链接:https://www.haomeiwen.com/subject/fefntctx.html