HashMap 中的 entrySet()使用方法 2016.12.28


package map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;

/**
 * @author Administrator
 *注意:HashMap不支持Iterator所以要通過其他方式迭代Map中的Key和Value
 */
public class EntrySetDemo {
    public static void main(String[] args) {
        HashMap<String,String> hs=new HashMap<String,String>();
        //添加元素
        hs.put("key1", "value1");
        hs.put("key2", "value2");
        hs.put("key3", "value3");
        hs.put("key4", "value4");
        hs.put("key5", "value5");
        /**
         * 獲取hs返回的Set視圖
         * 非常注意:返回此映射中包含的映射關系的Set視圖,對此Set視圖的操作會反映到原來的HashMap
         */
        Set<Entry<String,String>> set=hs.entrySet();
        /**
         * 對Set進行迭代,返回的Entry包含key和value,格式為:key=value
         */
        Iterator<Entry<String,String>> iter=set.iterator();
        //這種做法輸出的格式為key=value
//        while(iter.hasNext()){
//            System.out.println(iter.next());
//        }
        
        //對entry進行迭代
        while(iter.hasNext()){
            Entry<String,String> entry=iter.next();//得到一個entry對象
            entry.setValue("123");//將當前迭代的Entry的value替換為123
            String key=entry.getKey();//獲取當前迭代的entry對象(返回的Set視圖中的Entry)的key
            String value=entry.getValue();//獲取當前迭代Entry對象的value
            System.out.println(key+"="+value);
            entry.setValue("1");//在此替換當前迭代對象的Value,將映射到HashMap<String,String>
        }
        System.out.println("===========================");
        //對Set視圖的編輯會反應到Entry
        for(Entry<String,String> entry:set){
            //每個Entry就是map中的一個key及其它對應的value被重新封裝的對象
            for(String key:hs.keySet()){
                System.out.println(key+"="+hs.get(key));
            }
        }
    }
    
}

運行結果為:

key4=123
key3=123
key5=123
key2=123
key1=123
===========================
key4=1=null
key3=1=null
key5=1=null
key2=1=null
key1=1=null

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM