java基础-Map的静态初始化以及Map的遍历等.....................

Posted 有点懒惰的大青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);  
        }    
    }
}

 

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.

以上是关于java基础-Map的静态初始化以及Map的遍历等.....................的主要内容,如果未能解决你的问题,请参考以下文章

java基础- Collection和map

java中遍历Map几种方法

谈谈java中遍历Map的几种方法

谈谈java中遍历Map的几种方法

修改与遍历MAP

Java基础之Map的遍历