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 //ConcurrentModificationException
56 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 //第二种遍历方法:普通for
23 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 //第三种遍历方法:增强for
30 for(String s2 : list){
31 System.out.println(s2);
32 }
33 }
34 
35 }

 

posted @ 2016-09-22 23:04  卡拉瓦  阅读(599)  评论(0编辑  收藏  举报