zoukankan      html  css  js  c++  java
  • java容器的一些存取用法

    关于集合(list,set,map)的遍历与增强for循环的使用

     
     

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

         许多情况需要我们遍历出集合中的元素,并做相应的处理。
         下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。如果只做简单遍历读取,增强for循环确实减轻不少的代码量。
    关于List与Set类型集合的遍历:
    [java] 
    import java.util.ArrayList;  
    import java.util.HashSet;  
    import java.util.Iterator;  
    import java.util.List;  
    import java.util.Set;  
      
    public class ListAndSetTest {  
      
        public static void main(String[] args) {  
            // List集合的遍历  
            listTest();  
            // Set集合的遍历  
            setTest();  
        }  
      
        private static void setTest() {  
            Set<String> set = new HashSet<String>();  
            set.add("JAVA");  
            set.add("C");  
            set.add("C++");  
            // 重复的加不进去。  
            set.add("JAVA");  
            set.add("JAVASCRIPT");  
      
            //set集合遍历方法1,使用iterator  
            Iterator<String> it = set.iterator();  
            while (it.hasNext()) {  
                String value = it.next();  
                System.out.println(value);  
            }  
              
            //set集合遍历方法2,使用增强for循环。  
            for(String s: set){  
                System.out.println(s);  
            }  
        }  
      
        // 遍历list集合  
        private static void listTest() {  
            List<String> list = new ArrayList<String>();  
            list.add("java111");  
            list.add("java222");  
            list.add("java333");  
            list.add("java444");  
            list.add("java555");  
      
            // 遍历方式1 ,使用iterator  
            Iterator<String> it = list.iterator();  
            while (it.hasNext()) {  
                String value = it.next();  
                System.out.println(value);  
            }  
      
            // 遍历方法2 , 使用传统for循环进行遍历。  
            for (int i = 0, size = list.size(); i < size; i++) {  
                String value = list.get(i);  
                System.out.println(value);  
            }  
      
            // 遍历方法3 , 使用增强for循环进行遍历。  
            for (String value : list) {  
                System.out.println(value);  
            }  
        }  
    }  
     
    关于Map类型集合的遍历,keySet()与entrySet()方法:
    [java] view plaincopy
    //增强For循环  
    public class MapTest {  
      
        public static void main(String[] args) {  
            // 创建一个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; keySet()  
            //traditionalMethod1(maps);  
            // 传统的遍历map集合的方法2; entrySet()  
            //traditionalMethod2(maps);  
            // 使用增强For循环来遍历map集合方法1; keySet()  
            //strongForMethod1(maps);  
            // 使用增强For循环来遍历map集合方法2; entrySet()  
            strongForMethod2(maps);  
        }  
      
        private static void strongForMethod2(Map<String, String> maps) {  
            Set<Entry<String, String>> set = maps.entrySet();  
            for (Entry<String, String> entry : set) {  
                String key = entry.getKey();  
                String value = entry.getValue();  
                System.out.println(key + " : " + value);  
            }  
        }  
      
        private static void strongForMethod1(Map<String, String> maps) {  
            Set<String> set = maps.keySet();  
            for (String s : set) {  
                String key = s;  
                String value = maps.get(s);  
                System.out.println(key + " : " + value);  
            }  
        }  
      
        // 使用entrySet()方法,获取maps集合中的每一个键值对,  
        private static void traditionalMethod2(Map<String, String> maps) {  
            Set<Map.Entry<String, String>> sets = maps.entrySet();  
            // 取得迭代器遍历出对应的值。  
            Iterator<Entry<String, String>> it = sets.iterator();  
            while (it.hasNext()) {  
                Map.Entry<String, String> entry = (Entry<String, String>) it.next();  
                String key = entry.getKey();  
                String value = entry.getValue();  
                System.out.println(key + " : " + value);  
            }  
        }  
      
        // 使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值。  
        private static void traditionalMethod1(Map<String, String> maps) {  
            Set<String> sets = maps.keySet();  
            // 取得迭代器遍历出对应的值。  
            Iterator<String> it = sets.iterator();  
            while (it.hasNext()) {  
                String key = it.next();  
                String value = maps.get(key);  
                System.out.println(key + " : " + value);  
            }  
        }  
    }  
  • 相关阅读:
    在安装ODAC后再安装.netframework导致应用程序无法找到.netframework data provider的解决方案(3种)
    浅谈Scrum敏捷开发:4个输入/输出、3个关键物、3个会议
    Payoneer个人账户注册申请教程
    巧用netsh命令实现端口转发(端口映射)不求人
    京东也开始欺骗消费者了
    powershell解决win10开始菜单和通知中心无法打开
    有些其他程序设置为从 Outlook 下载并删除邮件。为防止发生此意外情况,我们将这些邮件放入一个特殊的 POP 文件夹中
    maven搭建
    java面试第四弹(算法和编程)思路
    每秒处理10万高并发订单的乐视集团支付系统架构分享
  • 原文地址:https://www.cnblogs.com/yuxiliang/p/5943473.html
Copyright © 2011-2022 走看看