zoukankan      html  css  js  c++  java
  • java基础-Map的静态初始化以及Map的遍历等.....................

    1.map的静态初始化,以及map遍历的几种方法:                

    package com.cy.test;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    
    public class Test {
        public static void main(String[] args) {
            Map<String, Integer> map = new HashMap<String, Integer>(){
                {
                    put("zh", 1);
                    put("en", 2);
                    put("zh_CN", 1);
                    put("en_US", 2);
                }
            };
            
            /**
             * 方法一   使用Iterator遍历
             * 该种方式看起来冗余却有其优点所在。
             * 首先,在老版本java中这是惟一遍历map的方式。
             * 另一个好处是,你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能,根据javadoc的说明,如果
             * 在for-each遍历中尝试使用此方法,结果是不可预测的。
             * 从性能方面看,该方法类同于for-each遍历(即方法二)的性能。
             */
            Iterator<Entry<String, Integer>> it = map.entrySet().iterator();
            while(it.hasNext()){
                Entry<String, Integer> entry = it.next();
                System.out.println("key:" + entry.getKey() + "----" + entry.getValue()); 
            }
            
            /**
             * 方法二 在for-each循环中使用entries来遍历
             * 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
             * 如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException
             */
            for(Map.Entry<String, Integer> entry : map.entrySet()){
                System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
            }
            
            /**
             * 方法三 在for-each循环中遍历keys或values。
             * 该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
             */
            for(String key : map.keySet()){
                System.out.println("Key = " + key); 
            }
            for(Integer value : map.values()){
                System.out.println("Value = " + value);
            }
            
            /**
             * 方法四 通过键找值遍历(效率低)
             * 实际上它相当慢且无效率。因为从键取值是耗时的操作
             * 尽量避免使用。
             */
            for (String key : map.keySet()) {  
                Integer value = map.get(key);
                System.out.println("Key = " + key + ", Value = " + value);  
            }    
        }
    }

    使用Map.isEmpty()判断map是不是一个空的集合。 

    2.List的静态初始化:                      

    public static void main(String[] args) {
            //方式1
            List<String> list = new ArrayList<String>(){
                {
                    add("string1");
                    add("string2");
                    add("string3");
                }
            };
            
            //方式2
            List<String> list2 = new ArrayList<String>(Arrays.asList("Ryan", "Julie", "Bob"));
        }

    3.

  • 相关阅读:
    EntityFramework 插入自增ID主从表数据
    API接收数据反序列化失败问题查找
    Linq Group by获取数量和数据
    git 常用命令
    Redis安装及局域网访问配置CentOS
    Azure虚拟机网站部署 防火墙设置
    .NET基础拾遗(1)类型语法基础和内存管理基础【转】
    ASP.NET CSRF 解决【网摘】
    win7 oracle 冷恢复
    $.ajax中contentType: “application/json” 的用法[转]
  • 原文地址:https://www.cnblogs.com/tenWood/p/7545799.html
Copyright © 2011-2022 走看看