• 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();
        }
    
    }
  • 相关阅读:
    Android studio怎么创建shape的XML文件
    请问如何在PS中将一张图标里的各个小图标分离成一个个图标?
    IOS 开发之 -- 过滤掉字符串里面所有的非法字符 字典和json之间的互转
    ios开发之 -- 5分钟集成融云的客服功能
    ios开发之 --调用系统的页面,显示中文
    IOS 开发之-- textfield和textview,return键的改变,点击return键
    IOS 开发之--获取真机的deviceToeken
    iOS 开发之--使用AFNetWorking3.1.0上传单张/多张图片
    iOS 开发之--打测试包的时候报错的解决方法
    ios开发之 -- 调用系统定位获取当前经纬度与地理信息
  • 原文地址:https://www.cnblogs.com/cnjavahome/p/8284114.html
Copyright © 2020-2023  润新知