迭代器
/* 迭代器 遍历集合 迭代器Iterator 是一个接口 作用是绑定集合 迭代集合中的元素。 特殊之处: 在迭代期间可以移除迭代器指向的集合的元素 boolean hasNext() 检查集合列表中是否还有元素未进行遍历,检查的方式从第一个依次向后检查 Object next() 获得当前遍历到的元素 void remove() 从迭代器指向的 collection 中移除迭代器遍历到的当前元素。 【注意:如果使用迭代器遍历集合元素,迭代器必须依附于集合。 简单而言:有一个迭代器对象,就必须有一个与之关联的集合对象 】 【注意: 在迭代期间 集合本身不能操作移除功能】 */ import java.util.*; class IteratorDemo { public static void main(String[] args) { //System.out.println("Hello World!"); Collection c = new ArrayList(); c.add("蜡笔小新"); c.add(5); c.add("淘气"); // 将集合与迭代器绑定【】 Iterator ite = c.iterator(); while(ite.hasNext()){ // 获取集合中的元素 Object obj = ite.next(); System.out.println(obj); // 移除迭代器指向的集合中的元素 ite.remove(); //c.remove("淘气"); /* ConcurrentModificationException 并发修改异常 */ } System.out.println(c); } }
foreach
/* 增强for循环进行遍历 【集合修改本身元素】 */ import java.util.*; class ForeachDemo { public static void main(String[] args) { //System.out.println("Hello World!"); Collection c = new ArrayList(); c.add("路飞"); c.add("娜美"); c.add("鸣人"); for(Object obj : c){ // c.remove("鸣人");// ConcurrentModificationException System.out.println(obj); } } }
for
/* 普通for循环 注意:需要获得脚标 需要将集合转化为数组 */ import java.util.*; class ForDemo { public static void main(String[] args) { //System.out.println("Hello World!"); Collection c = new ArrayList(); c.add("貂蝉"); c.add("西施"); c.add("王昭君"); c.add("杨玉环"); // 将集合转换为数组 Object[] arr = c.toArray(); for(int i = 0; i < arr.length; i++){ c.remove("王昭君"); System.out.println(arr[i]); } } }