package cn.itcast.day19.foreach;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.ListIterator;/* * JDK5的新特性:自動拆裝箱,泛型,可變參數,增強for,靜態導入,枚舉 * * 增強for:是for循環的一種 * * 格式: * for(元素數據類型 變量:數組或者Collection集合){ * * } * *好處:簡化了數組和Collection集合的遍歷 * *弊端: * 1 增強for的目標不能為null * 解決:對增強for的目標先進行不為null的判斷,然后再使用 * 2 無法在迭代過程中修改集合 * 解決:沒轍 */public class ForEachDemo { public static void main(String[] args) { String[] arr1=new String[]{"林青霞","風清揚","豬八戒","沙和尚"}; for(String s:arr1){ System.out.PRintln(s); } System.out.println("---------"); Collection<String> arr2=new ArrayList<String>(); arr2.add("林青霞"); arr2.add("風清揚"); arr2.add("豬八戒"); arr2.add("沙和尚"); for(String s:arr2){ System.out.println(s); } System.out.println("---------"); //增強for其實就是迭代器 //迭代器迭代集合,正在迭代的過程中,集合操作集合元素ConcurrentModificationException// for(String s:arr2){// if("林青霞".equals(s)){// arr2.add("孫悟空");// }// } //列表迭代器迭代集合,迭代器修改結合 List<String> arr3=(List<String>)arr2; ListIterator<String> it=arr3.listIterator(); while(it.hasNext()){ String s=it.next(); if("林青霞".equals(s)){ it.add("周杰倫 "); } } System.out.println("arr3: "+arr3); System.out.println("---------"); List<String> list=null; //對增強for的目標先進行不為null的判斷,然后再使用 if(list!=null){ //s是從list中拿出來的,在拿之前肯定會判斷list是否有元素,而這時list=null,報空指針 for(String s:list){ System.out.println(s); } } }}
新聞熱點
疑難解答