27、增强for循环

增强for循环

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

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

例:

package com.sutaoyu.list;

import java.util.ArrayList;
import java.util.List;

public class list_test_11 {
    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);
        }
    }
}

集合框架中的三种迭代方式删除数据

  • 普通for循环,可以删除,注意让索引做自减运算
  • 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
  • 增强for循环不能删除
package com.sutaoyu.list;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class list_test_11 {
    public static void main(String[] args) {
        List<String> list = new ArrayList();
        list.add("a");
        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);
    }
}

 

posted @ 2018-12-17 16:15  追风的小蚂蚁  阅读(203)  评论(0编辑  收藏  举报