A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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);
               
        }




评分

参与人数 1黑马币 +5 收起 理由
李培根 + 5 感谢分享

查看全部评分

2 个回复

正序浏览
求也没技术分{:soso_e127:}
回复 使用道具 举报
还以为有什么事,几个求技术分的帖子
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马