首页 > 代码库 > java 16 - 9 增强for的概述和使用

java 16 - 9 增强for的概述和使用


  JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举

  增强for:是for循环的一种。

  格式:
    for(元素数据类型 变量 : 数组或者Collection集合) {
        使用变量即可,该变量就是元素
      }

  好处:简化了数组和集合的遍历。

  弊端: 增强for的目标不能为null。
    如何解决呢?对增强for的目标先进行不为null的判断,然后在使用。

 1 import java.util.ArrayList; 2 import java.util.Collection; 3 import java.util.List; 4 public class ForDemo { 5  6 public static void main(String[] args) { 7 //int数组的遍历 8 int[] arr = {11,22,33,44,55,66,77}; 9 for(int i : arr){10 System.out.println(i);11 }12 System.out.println("---------");13 14 //String数组的遍历15 String[] str = {"阿猫","阿狗","花花","草草"};16 for(String s : str){17 System.out.println(s);18 }19 System.out.println("---------");20 21 //Collection集合的遍历22 Collection<Integer> c = new ArrayList<Integer>();23 c.add(2008);24 c.add(2012);25 c.add(2016);26 for(Integer i : c){27 System.out.println(i);28 }29 System.out.println("---------");30 31 //ArrayList集合的遍历32 ArrayList<String> s = new ArrayList<String>();33 s.add("java");34 s.add("javaee");35 s.add("javase");36 s.add("Android");37 for(String ss : s){38 System.out.println(ss);39 }40 System.out.println("---------");41 42 //但是,当遍历的是一个空集合呢?43 List<Double> l = null; //大写的Double才是引用类型44 //NullPointerException 45 // 这个d是我们从list里面获取出来的,在获取前,它肯定还好做一个判断46 // 说白了,这就是迭代器的功能47 //解决方法:给它加个进入语句的条件48 if(l != null){49 for(Double d : l){50 System.out.println(d);51 }52 }53 54 // 增强for其实是用来替代迭代器的55 //ConcurrentModificationException56 for(String s1 : s){57 if("Android".equals(s1)){58 s.add("IOS");59 }60 System.out.println(s1);61 }62 63 }64 }

 

 



  ArrayList存储字符串并遍历。要求加入泛型,并用增强for遍历。
  目前掌握了3种遍历方法:
    A:迭代器
    B:普通for
    C:增强for

 1 import java.util.ArrayList; 2 import java.util.Iterator; 3 public class ArrListDemo { 4  5 public static void main(String[] args) { 6 //创建ArrayList集合 7 ArrayList<String> list = new ArrayList<String>(); 8 //给集合添加元素 9 list.add("java");10 list.add("javaee");11 list.add("javase");12 list.add("Android");13 14 //第一种遍历方法:迭代器15 Iterator<String> it = list.iterator();16 while(it.hasNext()){17 String s = it.next();18 System.out.println(s);19 }20 System.out.println("-------");21 22 //第二种遍历方法:普通for23 for(int x = 0; x < list.size(); x++){24 String s1 = list.get(x);25 System.out.println(s1);26 }27 System.out.println("-------");28 29 //第三种遍历方法:增强for30 for(String s2 : list){31 System.out.println(s2);32 }33 }34 35 }

 

java 16 - 9 增强for的概述和使用