增强for循环和迭代器
/*
增强for格式:
for(元素的数据类型 变量名 : 要遍历的数组或者集合对象) {
//循环体, 变量也就是元素
}
快捷方式:
iter --> 回车
注意:
增强for的底层依赖的是迭代器(Iterator).
大白话解释: 增强for就是迭代器的简写形式.
*/
package cn.itcast.demo2;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
//需求: 通过增强for遍历List集合.
//1. 创建集合对象.
List list = new ArrayList();
//2. 创建元素对象.
//3. 将元素对象添加到集合对象中.
list.add(10);
list.add(10);
list.add(30);
list.add(20);
list.add(40);
//4. 遍历集合.
for(Object obj : list) {
//obj是集合中的元素, 其本身应该是Integer类型的数据.
Integer ii = (Integer)obj;
System.out.println(ii);
}
System.out.println("-------------------");
for (Object obj : list) {
Integer ii = (Integer)obj;
System.out.println(ii);
}
}
}
package cn.itcast.demo3;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Test1 {
public static void main(String[] args) {
//需求: 测试列表迭代器
//1. 创建集合对象.
List list = new ArrayList();
//2. 创建元素对象.
//3. 将元素对象添加到集合对象中.
list.add("a");
list.add("b");
list.add("c");
//需求: 判断集合中如果有字符串"b", 就在其后边添加一个新的字符串: java
//1. 根据集合对象获取列表迭代器对象.
ListIterator lit = list.listIterator();
//2. 判断迭代器中是否有元素.
while(lit.hasNext()) {
//3. 有就获取元素即可.
String s = (String)lit.next();
if ("b".equals(s)) {
//list.add("java"); //这样写不行, 必须调用列表迭代器的方法来实现.
lit.add("java");
}
System.out.println(s);
}
System.out.println("------------------");
//打印新的集合中的值
System.out.println(list);
}
}
p150