• 总结for循环及for循环增强遍历数组,list,set和map


    一.对于集合

    (1)普通for循环

            int[] arr = { 2, 1, 2 };
            for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);
            }

    (2)for循环增强

            int[] arr = { 2, 1, 2 };
            for (int i : arr) {
                System.out.println(i);
            }
            System.out.println("********************");
            //二维数组
            int [][]arr1={{2,1,3},{1,2,5}};
            for(int []i:arr1){
                for(int j:i){
                    System.out.println(j);
                }
            }

    二.对于list,list是一个接口,有很多实现它的类,例如ArrayList,LinkedList,Vector。

    (1)使用普通的for循环和迭代器

            List<String> list=new ArrayList<String>();
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
            //普通的遍历
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
            System.out.println("****************");
            //使用迭代器
            Iterator<String> iterator=list.iterator();
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }

    (2)使用for循环增强

            for(String s:list){
                System.out.println(s);
            }

    (3)在java8中增加了一种方式,可以调用forEachRemaining方法遍历元素(标准库中的任何集合都可以),参数是lambda表达式。下面的同理。

    iterator.forEachRemaining(i->System.out.println(i));

    三.对于set接口,有很多实现它的类,HashSet(无序),LinkedHashSet(有序)

    (1)使用迭代器。注意set没有get()方法!!!

            Set<String> set=new HashSet<>();
            set.add("a");
            set.add("b");
            set.add("c");
            Iterator<String> iterator=set.iterator();
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }

    (2)使用for循环增强

            for(String s:set){
                System.out.println(s);
            }

    四.对于map接口,有很多实现它的类,HashMap,LinkedHashMap,HashTable。以键值对的形式存放

    (1)使用迭代器,有两种方式

            Map<String,String> map=new HashMap<>();
            map.put("1", "aa");
            map.put("2", "bb");
            map.put("3", "cc");
            //方法1:使用迭代器,取keySet()
            Iterator<String> iterator=map.keySet().iterator();
            while(iterator.hasNext()){
                String key=iterator.next();
                String value=map.get(key);
                System.out.println("key="+key+"  value="+value);
            }
            //方法2:使用迭代器,取entrySet()
            Iterator<String> iterator2=map.entrySet().iterator();
            while(iterator2.hasNext()){
                Map.Entry<String, String> entry=(Map.Entry<String,String>)iterator2.next();
                System.out.println(entry.getKey()+"  "+entry.getValue());
            }

    (2)增强for循环,对上面2种方法改写

            //方法1
            for(String s:map.keySet()){
                System.out.println(s+"  "+map.get(s));
            }
            //方法2使用增强for,entrySet()
            for(Map.Entry me:map.entrySet()){
                System.out.println(me.getKey()+"  "+me.getValue());
            }

     (3)使用forEach方法

     map.forEach((k, v) -> 
             System.out.println("key=" + k + ", value=" + v));
  • 相关阅读:
    英语语法总结---二、英语中的从句是怎么回事
    【Cocos得知】技术要点通常的积累
    政府采购清单应包括“问题” 积
    Ubuntu通过使用PyCharm 进行调试 Odoo 8.0 可能出现的问题
    Android自己定义组件系列【8】——面膜文字动画
    手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发
    OS和android游戏纹理优化和内存优化(cocos2d-x)
    删除重复数据
    MyEclipse2014 设备 checkstyle、PMD、findbugs 最简单的方法 详细说明
    hdu5044 Tree 树链拆分,点细分,刚,非递归版本
  • 原文地址:https://www.cnblogs.com/sunnyCx/p/7787353.html
Copyright © 2020-2023  润新知