• 增强for循环


    jdk1.5出现的新特性---->增强for循环
    增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)
    增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。

    增强for循环的格式: 
      for(数据类型  变量名  :遍历的目标){   //数据类型  变量名:声明一个变量用来接收遍历目标遍历后的元素
     
      }
    增强for循环要注意的事项:
    1. 增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的过程中不准使用集合
            对象对集合的元素个数进行修改。
    2. 迭代器遍历元素与增强for循环变量元素的区别:使用迭代器遍历集合的元素时可以删除集合的元素,而增强for循环变量集合的元素时,不能调用迭代器的remove方法删                 除 元素。

    3. 普通for循环与增强for循环的区别:普通for循环可以没有遍历的目标,而增强for循环一定要有遍历的目标。

     1 [java] view plain copy
     2  
     3 public class Demo2 {  
     4       
     5     public static void main(String[] args) {  
     6         HashSet<String> set = new HashSet<String>();  
     7         //添加元素  
     8         set.add("狗娃");  
     9         set.add("狗剩");  
    10         set.add("铁蛋");  
    11           
    12         /* 
    13         //使用迭代器遍历Set的集合. 
    14         Iterator<String> it  = set.iterator(); 
    15         while(it.hasNext()){ 
    16             String temp = it.next(); 
    17             System.out.println("元素:"+ temp); 
    18             it.remove(); 
    19         } 
    20          
    21          
    22         //使用增强for循环解决 
    23         for(String item : set){ 
    24             System.out.println("元素:"+ item); 
    25              
    26         } 
    27          
    28          
    29          
    30          
    31         int[] arr = {12,5,6,1}; 
    32          
    33         普通for循环的遍历方式 
    34         for(int i =  0 ; i<arr.length ; i++){ 
    35             System.out.println("元素:"+ arr[i]); 
    36         } 
    37          
    38         //使用增强for循环实现 
    39         for(int item :arr){ 
    40             System.out.println("元素:"+ item); 
    41         } 
    42          
    43          
    44          
    45         //需求: 在控制台打印5句hello world. 
    46         for(int i = 0 ; i < 5; i++){ 
    47             System.out.println("hello world"); 
    48         } 
    49         */  
    50           
    51         //注意: Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection  
    52         // 的集合。  
    53         HashMap<String, String> map = new HashMap<String, String>();  
    54         map.put("001","张三");  
    55         map.put("002","李四");  
    56         map.put("003","王五");  
    57         map.put("004","赵六");  
    58         Set<Map.Entry<String, String>> entrys = map.entrySet();  
    59         for(Map.Entry<String, String> entry  :entrys){  
    60             System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());  
    61         }  
    62           
    63           
    64     }  
    65   
    66 }  
    View Code
     

    自定义的类也可使用增强for循环:

     1 [java] view plain copy
     2  
     3 package cn.itcast.jdk15;  
     4   
     5 import java.util.Iterator;  
     6   
     7 //自定一个类使用增强for循环  
     8 class MyList implements Iterable<String>{  
     9       
    10     Object[] arr = new Object[10];  
    11       
    12     int index = 0 ; //当前的指针  
    13       
    14     public void add(Object o){  
    15         arr[index++] = o;  // 1  
    16     }  
    17       
    18     public int size(){  
    19         return index;  
    20     }  
    21   
    22     @Override  
    23     public Iterator<String> iterator() {  
    24           
    25           
    26         return new Iterator<String>() {  
    27   
    28             int cursor  = 0;  
    29   
    30             @Override  
    31             public boolean hasNext() {  
    32                 return cursor<index;  
    33             }  
    34   
    35             @Override  
    36             public String next() {  
    37                 return (String) arr[cursor++];  
    38             }  
    39   
    40             @Override  
    41             public void remove() {  
    42                   
    43             }  
    44         };  
    45     }  
    46 }  
    47   
    48 public class Demo3 {  
    49       
    50     public static void main(String[] args) {  
    51         MyList list = new MyList();  
    52         list.add("张三");  
    53         list.add("李四");  
    54         list.add("王五");  
    55           
    56         for(String item :list){  
    57             System.out.println(item);  
    58         }  
    59           
    60           
    61           
    62     }  
    63       
    64 }  
    View Code
  • 相关阅读:
    gtest ASSERT_TRUE和EXPECT_TRUE
    linux中文乱码
    [转]linux实时查看更新日志命令
    显示log里的ansi codecs颜色字符
    批量注释LOG
    Winrm远程命令/端口复用后门复现运用
    SSM整合Redis中的小记录
    从《MySQL蜜罐攻击反制微信ID》中的启发与复现
    CSharp插件编写-GetPwd密码获取器
    从pipePotato中学习Windows Access Token令牌模拟
  • 原文地址:https://www.cnblogs.com/yonyong/p/8450238.html
Copyright © 2020-2023  润新知