package cn.itcast_01;

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

/*
* JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举
*
* 增强for:是普通for的一种。
*
* 格式:
* for(元素数据类型 变量:数组或者Collection集合){
* 使用变量即可,该变量就是元素。
* }
*
* 好处:简化了数组和集合的遍历。
* 弊端:增强for的目标不能为null;
* 如何解决呢?对增强for的目标先进行不为null的判断,然后再使用。
*/
public class ForDemo {
public static void main(String[] args) {
// 定义一个int数组
int[] arr = { 11, 22, 33, 44, 55 };
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
// 增强for
for (int i : arr) {
System.out.println(i);
}
System.out.println("----------------");
// 定义一个字符串数组
String[] strArray = { "hello", "world", "java" };
for (String s : strArray) {
System.out.println(s);
}
System.out.println("----------------");
// 定义一个集合
ArrayList<String> array = new ArrayList<String>();
array.add("林青霞");
array.add("风清杨");
array.add("张国荣");
for (String s : array) {
System.out.println(s);
}
System.out.println("----------------");
// NullPointerException
// 这个s是我们从list里面获取出来的,存获取前,它肯定还要做一个判断
// 说白了就是迭代器功能
List<String> list = null;
if (list != null) {
for (String s : list) {
System.out.println(s);
}
}
System.out.println("----------------");

// 增强for是用来替代迭代器的
// ConcurrentModificationException
// for (String s : array) {
// if ("风清杨".equals(s)) {
// array.add("东方不败");
// }
// }
System.out.println("array:" + array);
}
}