码迷,mamicode.com
首页 > 其他好文 > 详细

27、增强for循环

时间:2018-12-17 16:57:15      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:font   循环   iterator   col   集合框架   sys   package   port   public   

增强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);
    }
}

 

27、增强for循环

标签:font   循环   iterator   col   集合框架   sys   package   port   public   

原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10132161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!