Java - 各种遍历

此篇文章主要记录各种不同类型数据的遍历

一、遍历List

  1. 使用迭代器Iterator进行遍历
  2. for循环遍历
  3. foreach循环遍历
        @Test
        void contextLoads() {
    
            List<Object> list=new ArrayList<>();
            list.add("Hi");
            list.add("I");
            list.add("am");
            list.add("Lucy");
    
            // Iterator迭代器遍历
            System.out.println("Iterator迭代器遍历结果:");
            Iterator<Object> itlist=list.iterator();
            while (itlist.hasNext()){
                System.out.print(itlist.next());
                System.out.print(" ");
            }
    
            // for循环遍历
            System.out.println();
            System.out.println("for循环遍历结果:");
            for (int i=0;i<list.size();i++){
                System.out.print(list.get(i));
                System.out.print(" ");
            }
    
            // foreach循环遍历
            System.out.println();
            System.out.println("foreach循环遍历结果:");
            for (Object element:list) {
                System.out.print(element);
                System.out.print(" ");
            }
        }

    输出结果:

二、遍历Set

  1. 使用迭代器Iterator进行遍历
  2. foreach循环遍历
  3. !!!不能直接使用for循环遍历,因为Set类接口没有获取元素的方法(好像可以转化成List再使用for循环遍历,不是很确定)
        @Test
        void contextLoads() {
    
            Set<Object> set=new HashSet<>();
            set.add("Hi");
            set.add("I");
            set.add("am");
            set.add("Lucy");
            
            // Iterator迭代器遍历
            System.out.println("Iterator迭代器遍历结果:");
            Iterator<Object> itset=set.iterator();
            while (itset.hasNext()){
                System.out.print(itset.next());
                System.out.print(" ");
            }
    
            // foreach循环遍历
            System.out.println();
            System.out.println("foreach循环遍历结果:");
            for (Object element:set) {
                System.out.print(element);
                System.out.print(" ");
            }
            System.out.println();
        }

     

三、遍历Map

# map声明
        Map<Object,Object> map=new HashMap<>();
        map.put("id","001");
        map.put("name","张三");
        map.put("age",18);
  1. 通过Map.keySet获取key,然后用map.get(Key)来获取对应的值
    // 通过Map.keySet取值遍历
            for (Object key:map.keySet()) {
                System.out.println(key + " : " + map.get(key));
            }
  2. 通过Map.enteySet和iterator迭代器相结合,然后使用getKey和getValue获取key和value
        @Test
        void contextLoads() {
    
            Map<String, String> map = new HashMap<>();
            map.put("id", "001");
            map.put("name", "张三");
            map.put("age", "18");
    
            Set<Map.Entry<String,String>> entrySet=map.entrySet();
            Iterator<Map.Entry<String,String>> iterator=entrySet.iterator();
    
            while (iterator.hasNext()) {
                Map.Entry<String,String> entry1 = iterator.next();
                System.out.println(entry1.getKey() + " : " + entry1.getValue());
            }
        }
  3. 通过Map.enteySet遍历key和value
    //  推荐,尤其容量大时,通过通过entrySet遍历,但是不使用Iterator遍历
            for (Map.Entry<Object,Object> entry2 : map.entrySet()) {
                System.out.println(entry2.getKey() + " : " + entry2.getValue());
            }
  4. 通过Map.values()遍历所有的values,但是不能遍历key
    //   通过Map.values()遍历值,但是不能遍历key
            for (Object value : map.values()) {
                System.out.println(value);
            }

     

四、遍历数组

  1. 使用for循环
  2. 使用foreach循环
  3. 如果是要输出数组的话,可以使用toString方法
        @Test
        void contextLoads() {
    
            String[] arr={"n","a","m","e"};
    
            // for循环
            for (int i=0;i< arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
    
            // foreach循环
            for (String element:arr) {
                System.out.print(element + " ");
            }
            System.out.println();
    
            // Arrays.toString()方法
            System.out.println(Arrays.toString(arr));
        }

     

 

 

 

 

posted @ 2020-03-11 19:38  爱穿新衣服的姑凉  阅读(291)  评论(0编辑  收藏  举报