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