黑马程序员技术交流社区

标题: JDK1.5特性之for循环增强 [打印本页]

作者: SyouRai_Tsk    时间: 2014-3-11 15:47
标题: JDK1.5特性之for循环增强
本日志写一些关于JDK1.5特性.今天先写for循环增强,随后慢慢增加其他特性
关于for循环增强这一点,其实最主要的本质就是为了删除Iterator迭代器的使用.增强for循环只能用在数组、或实现Iterable接口的子类上
ps:for循环增强对赋值是不管用的,只用来输出值(重点,大多数的人很容易混淆),如果真需要赋值,还是要用传统的for循环

对于for循环增强,无非也就是数组,List集合,Map集合之间使用,如果学习了这特性可以提高工作效率
package cn.itcast.foreach;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

import org.junit.Test;

public class demo3_3 {

/*
    首先我们来讲数组的循环
*/
    @Test
    public void test1(){
        int arr[]={1,2,3,4,5};
    //这是传统意义上的输出数组中的每个值
       for(int i=0;i<arr.length;i++){
           System.out.println(arr);
        }
   /*而下面是使用我们的for循环增强
    for循环增强的使用语法
    for(1.变量类型 变量 :2.需迭代的数组或集合)
        }
1.是你需要迭代的数组或集合里那个值的变量类型,下面就是int类型
2.是你需要迭代的数组或集合 而下面就是前面定义的arr数组

ps:在此已经说明for循环的使用语法,下面则不再次具体说明使用的语法
*/
        for(int i:arr){
            System.out.println(i);
        }
    }
    @Test
    public void test2(){
        List list=new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        /*
    正常的情况下,集合都会使用Iterator进行迭代,然后使用hasNext和next

*/
        Iterator it=list.iterator();
       while(it.hasNext()){
           int i=(Integer)it.next();
           System.out.println(i);
       }     

        for(Object obj:list){
            System.out.println(obj);
        }
    }
    @Test  //传统的map集合1
    public void test3(){
        Map map=new LinkedHashMap();
        map.put("1", "aaaa");
        map.put("2", "bbbb");
        map.put("3", "cccc");
        map.put("4", "dddd");
      
        Set set=map.keySet();
        Iterator  it=set.iterator();
        while(it.hasNext()){
            String key=(String) it.next();
            String value=(String) map.get(key);
            System.out.println(key + "=" + value);
        }
    }
    @Test  //增强for循环的map集合1
    public void test4(){
        Map map=new LinkedHashMap();
        map.put("1", "aaaa");
        map.put("2", "bbbb");
        map.put("3", "cccc");
        map.put("4", "dddd");
        Set set=map.keySet();
        for(Object obj:set){
            String key=(String) obj;
            String value=(String) map.get(key);
            System.out.println(key + "=" + value);
        }
    }
    @Test
    public void test5(){
        Map map=new LinkedHashMap();
        map.put("1", "aaaa");
        map.put("2", "bbbb");
        map.put("3", "cccc");
        map.put("4", "dddd");
      
        Set set=map.entrySet();
        Iterator it=set.iterator();
        while(it.hasNext()){
            Map.Entry me=(Entry) it.next();
            String keys=(String) me.getKey();
            String value=(String) me.getValue();
            System.out.println(keys + "=" + value);
        }
    }
    @Test
    public void test6(){
        Map map=new LinkedHashMap();
        map.put("1", "aaaa");
        map.put("2", "bbbb");
        map.put("3", "cccc");
        map.put("4", "dddd");
      
        Set set=map.entrySet();
        for(Object obj:set){
            Map.Entry me=(Entry) obj;
            String keys=(String) me.getKey();
            String value=(String) me.getValue();
            System.out.println(keys + "=" + value);
        }
    }
}
作者: 菜小徐    时间: 2014-3-11 18:55
加强知识的理解深度




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2