java之同時獲取到key和value的方法entrySet


HashMap<Integer, String> hashMap = new HashMap();
        hashMap.put(2,"aa");
        hashMap.put(5,"bb");
        // 這里的Entry是Map內部類,所以寫成Map.Entry相當於就是散列表中的鏈表中的Node
        Set<Entry<Integer, String>> entrys = hashMap.entrySet(); // 獲取集合中全部的entry對象
        Iterator<Entry<Integer, String>> it = entrys.iterator();
        while (it.hasNext()) {
            Entry<Integer, String> entry = it.next(); // entry里面包含了key和value
            Integer key = entry.getKey(); // 獲取到Key
            String value = entry.getValue(); // 獲取到值
            /** 輸出結果是:
                2--aa
                5--bb
             */
            System.out.println(key + "--" + value);
        }

  其中hashMap.entrySet()方法的源代碼如下:

 public Set<Map.Entry<K,V>> entrySet() {
        Set<Map.Entry<K,V>> es;
        return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
    }

  擴展:從json對象中組裝出來一個hashMap集合

List<Map<String,Object>> rows = new ArrayList<Map<String,Object>>();
        for( Object obj : jsonArray ){
            JSONObject jObject = ( JSONObject ) obj;
            if( obj == null ){
                continue;
            }
// 實現邏輯是:先取出key放在一個set集合中,也就是去重 Set<String> keySet = jObject.keySet(); // if( keySet == null || keySet.size() == 0 ){ continue; }
// 然后又來定義一個HashMap<String,Object>集合,接着又分別遍歷key跟取出key對應的值 Map<String,Object> row = new HashMap<String,Object>( keySet.size() ); for( String key : keySet ){ row.put( key, jObject.get( key )); // 組裝成map集合 } rows.add( row ); }

  

 


免責聲明!

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



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