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);  
            }  
        }  
    }  
  • 相关阅读:
    “<”特殊符号写法
    js中,符合属性的js写法是讲下横杆去掉
    Windows 搭建WAMP+Mantis
    Windows server 2012 R2 服务器用户自动锁定
    对域用户设置为本地管理员权限
    windows 域控用户记住最后一次登录用户名
    redhat7.6 配置主从DNS
    redhat7.6 DNS配置正向解析
    redhat7.6 AIDE 系统文件完整性检查工具
    redhat7.6 httpd 匿名目录 目录加密 域名跳转
  • 原文地址:https://www.cnblogs.com/yuxiliang/p/5943473.html
Copyright © 2011-2022 走看看