码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-19 00:26:22      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:string   ccf   new   arraylist   inter   初始化   integer   效率   main   

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的遍历等.....................

标签:string   ccf   new   arraylist   inter   初始化   integer   效率   main   

原文地址:http://www.cnblogs.com/tenWood/p/7545799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!