黑马程序员技术交流社区

标题: 自动导入,拆箱装箱,增强for循环 可变参数等 求技术分 [打印本页]

作者: pzfpang449    时间: 2013-1-23 17:45
标题: 自动导入,拆箱装箱,增强for循环 可变参数等 求技术分
本帖最后由 pzfpang449 于 2013-1-24 10:02 编辑

自动导入,拆箱装箱,增强for循环
可变参数,枚举 反射 内省,泛型,元数据
1,静态导入 import static
2,自动装箱:把基本数据类型直接赋值给对应的包装类
自动拆箱:包装类对象直接赋给对应的基本数据类型
3,高级for循环 只能用在数组、或实现Iterable接口的集合类上

//传统方法1 keyset
@Test
        public void test3(){
                //如果想让显示有顺序需将HashMap()换成LinkedHashMap()....   Map map=new LinkedHashMap();
                Map map=new HashMap();
                map.put("1", "aa");
                map.put("2", "bb");
                map.put("3", "cc");
                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);
                }
               
        }

结果为1=aa,2=bb,3=cc;
//传统方式2 entrySet
file:///C:/Users/pang/AppData/Local/youdao/ynote/images/4795B17B30A240F29885762EEBD6ED4F/61D0217C8349422E9C66A89AD247033A.jpg

        @Test
        public void test4(){
                Map map=new LinkedHashMap();
                map.put("1", "aa");
                map.put("2", "bb");
                map.put("3", "cc");
                Set set=map.entrySet();
                Iterator it=set.iterator();
                while(it.hasNext()){
                        Map.Entry entry=(Map.Entry)it.next();
                        String key=(String) entry.getKey();
                        String value=(String) entry.getValue();
                        System.out.println(key+"="+value);
                }
        }

//增强for取map的第一种方法
        @Test
        public void test5(){
                Map map=new LinkedHashMap();
                map.put("1", "aa");
                map.put("2", "bb");
                map.put("3", "cc");
                for(Object obj:map.keySet()){
                        String key=(String) obj;
                        String value=(String) map.get(key);
                        System.out.println(key+"="+value);
                }
        }

//增强for取map的第二种方法
@Test
        public void test6(){
                Map map=new LinkedHashMap();
                map.put("1", "aa");
                map.put("2", "bb");
                map.put("3", "cc");
                for(Object obj:map.entrySet()){
                        Map.Entry entry=(Entry)obj;
                        String key=(String) entry.getKey();
                        String value=(String) entry.getValue();
                        System.out.println(key+"="+value);
                }
        }


//注意高级for只适合取数组,要修改要用传统for方式
        @Test
        public void test7(){
                int arr[]={1,2,3};
                for(int i:arr){
                        i=10;
                }
                System.out.println(arr[0]);
                System.out.println(arr[1]);
                System.out.println(arr[2]);
        }

结果为1,2,3而不是10
4,可变参数
public class kebiancanshu {
        @Test
        public void testSum(){
                sum(1,2,3);
                sum(1,2,3,4,5,6);
        }
        
        
        public void  sum(int ...nums){
                int sum=0;
                for(int i:nums){
                        sum+=i;
                }
                System.out.println(sum);
        }
}

结果为  6    21
可变参数需要注意的问题,类型问题
        @Test
        public void bb(){
                List list=Arrays.asList("1","2","3");
                System.out.println(list);
                String arr[]={"1","2","3"};
                list=Arrays.asList(arr);
                System.out.println(list);
                //如果为Integer则可以,结果为1,2,3,5
                //如果为  int nums[]={1,2,3,5}; 结果为[[I@12cc95d]
                Integer nums[]={1,2,3,5};
                list=Arrays.asList(nums);
                System.out.println(list);
               
        }





作者: 黄锦成    时间: 2013-1-23 21:05
还以为有什么事,几个求技术分的帖子
作者: 铿锵科技    时间: 2013-2-1 01:35
求也没技术分{:soso_e127:}




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