zoukankan      html  css  js  c++  java
  • Java 中 Set、List 和 Map 的遍历

    java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。

    package tup.lucene.test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.Map.Entry;
    
    public class SetListAndMap {
        
        /**
         * 遍历Set集合的方法:
         * 1.使用Iterator迭代器
         * 2.使用foreach遍历
         * 3.将Set集合转换为List再遍历
         */
        private static void setTest() {
            Set<String> set = new HashSet<String>();
            set.add("Java");
            set.add("C");
            set.add("C++");
            set.add("JavaScript");
            set.add("Python");
            // 重复的元素加不进去
            set.add("Java");
    
            //Set集合遍历方法1:使用iterator
            System.out.println("**************Set集合遍历方法1:使用iterator***************");
            Iterator<String> it = set.iterator();
            while (it.hasNext()) {
                String value = it.next();
                System.out.println(value);
            }
    
            //Set集合遍历方法2:使用增强for循环
            System.out.println("**************Set集合遍历方法2:使用增强for循环***************");
            for(String s: set){
                System.out.println(s);
            }
            
            //Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可
            System.out.println("**************Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可***************");
            List<String> setList = new ArrayList<String>(set);//set转list
            // 遍历方法 , 使用传统for循环进行遍历。
            for (int i = 0, size = setList.size(); i < size; i++) {
                String value = setList.get(i);
                System.out.println(value);
            }
        }
        
        /**
         * 遍历List集合的方法:
         * 1.使用Iterator迭代器
         * 2.使用for循环遍历
         * 3.使用foreach遍历
         */
        private static void listTest() {
            List<String> list = new ArrayList<String>();
            list.add("111");
            list.add("222");
            list.add("333");
            list.add("444");
            list.add("555");
            
            
            // List遍历方式1:使用iterator
            System.out.println("**************List遍历方式1:使用iterator***************");
            Iterator<String> it = list.iterator();
            while (it.hasNext()) {
                String value = it.next();
                System.out.println(value);
            }
      
            // List遍历方法2:使用传统for循环进行遍历
            System.out.println("**************List遍历方法2: 使用传统for循环进行遍历***************");
            for (int i = 0; i < list.size(); i++) {
                String value = list.get(i);
                System.out.println(value);
            }
      
            // List遍历方法3: 使用增强for循环进行遍历
            System.out.println("**************List遍历方法3: 使用增强for循环(foreach)进行遍历***************");
            for (String value : list) {
                System.out.println(value);
            }
        }
        
        /**
         * 遍历map集合的方法:
         * 1.使用keySet()获得key的set集合,然后使用Iterator迭代器或foreach遍历set即可,但是只能直接取出key,再通过key取出value,两种方法
         * 2.使用entrySet()获得key-value的set集合,然后使用Iterator迭代器或foreach遍历set即可,可同时取出key和value,两种方法
         */
        private static void mapTest() {
            // 创建一个HashMap对象,并加入了一些键值对。  
            Map<String, String> maps = new HashMap<String, String>();
            maps.put("111", "java111");
            maps.put("222", "java222");
            maps.put("333", "java333");
            maps.put("444", "java444");
            maps.put("555", "java555");
            
            // Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合
            System.out.println("**************Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合***************");
            Set<String> set = maps.keySet();  
            for (String s : set) {  
                String key = s;  
                String value = maps.get(s);  
                System.out.println(key + " : " + value);  
            }
            
            // Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历
            System.out.println("**************Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历***************");
            Iterator<String> it = set.iterator();  
            while (it.hasNext()) {  
                String key = it.next();  
                String value = maps.get(key);  
                System.out.println(key + " : " + value);  
            }  
            
            // Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可
            System.out.println("**************Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可***************");
            Set<Entry<String, String>> entrySet = maps.entrySet();
            for (Entry<String, String> entry : entrySet) {
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key + " : " + value);
            }
            
            // Map遍历方法2-2: 使用entrySet()获得key-value的Set集合,然后使用Iterator迭代器遍历
            System.out.println("**************Map遍历方法2-2: 使用entrySet()获得key-value的Set集合,然后使用Iterator迭代器遍历***************");
            Iterator<Entry<String, String>> entryIt = entrySet.iterator();
            while (entryIt.hasNext()) {
                Map.Entry<String, String> entry = (Entry<String, String>) entryIt.next();
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key + " : " + value);
            }
        }
        
        public static void main(String[] args) {
            // Set集合的遍历  
            setTest();
            
            // List集合的遍历  
            listTest();
            
            // Map集合的遍历  
            mapTest();
        }
    
    }
  • 相关阅读:
    Flink实时数仓(数据可视化)
    Hive调优
    面试(涉及技术一)
    启动Flink的yarnsession模式出错
    面试(涉及技术二)
    Filnk实时数仓(DWS层)
    Filnk实时数仓(Clickhouse)
    Filnk实时数仓(Prometheus监控)
    Filnk实时数仓(DWM层)
    Centos7下杀毒软件clamav的安装和使用
  • 原文地址:https://www.cnblogs.com/cnjavahome/p/8284114.html
Copyright © 2011-2022 走看看