总结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));
原文地址:https://www.cnblogs.com/sunnyCx/p/7787353.html