增强for循环与静态导入

1,静态导入(一般不建议使用):
    import static java.lang.System.out;->在程序中就可以直接用out.println(...);
    import static java.util.Array.*;->sort(int[]);[本来是要import java.util.Arrays;arrays.sort(int [])的]
2,自动装箱,拆箱:在jdk1.5出现
3,增强for循环(foreach):只适用于数组,或者实现Iterable接口的类上
    注意:增强for只适用于取出数据,修改数据还是要用传统的for循环
    案例public void test(){
            int[] a={1,2,3};
            for(int e:a){//将数据赋给e,这里并不会改变数组的值
                e=10;
                System.out.println(e);//10 10 10
            }    
            for(int i=0;i<a.length;i++)
                System.out.println(a[i]); // 1 2 3
        }
    增强for在HashMap的运用
        HashMap<Integer, String> hm=new HashMap<Integer, String>();
        hm.put(1,"a");
        hm.put(2,"b");
        hm.put(3,"c");
    -----传统1:
        Set<Integer> k=hm.keySet();
        Iterator<Integer> it=k.iterator();
        while(it.hasNext()){
            System.out.println(hm.get(it.next()));
        }
    ******使用增强for
        for(Integer e:hm.keySet()){
                System.out.println(hm.get(e));
            }
        
    -----传统二
        Set<Entry<Integer, String>> k=hm.entrySet();//通过Hash.entrySet()->封装成entry(key,value)的形式到Set
        Iterator<Entry<Integer, String>> it=k.iterator();
        while(it.hasNext()){
            Entry<Integer, String> entry=it.next();
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }
    ******使用增强for
        for(Entry<Integer,String> e:hm.entrySet()){
            System.out.println(e.getKey());
            System.out.println(e.getValue());    
        }
        
    
可变参数:
    
    @Test
        public void test(){
            sum(1,2,3,4);//10
            int[] a={1,2,3,4,5};
            sum(a);//15
            sum2(1,2,3,4);
        }
        public void sum(int ...nums){//可以将可变参数看做数组
            int sum=0;
            for(int e:nums){
                sum+=e;
            }
            System.out.println(sum);
        }
        
        public void sum2(int a,int...nums){
             
        }
    在使用可变参数的时候,应该看参数是什么类型,如Arrays.asList(T(对象)...a);
    int []num={1,2,3};
    List list=Arrays.asList(num);
    System.out.println(list);//这样是不行的,这个意思是把这个数组看做对象放了,应该讲int改为Integer
        这样输出的是[1,2,3];
posted @ 2016-04-26 20:34  戒。  阅读(123)  评论(0编辑  收藏  举报