亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將重復的密鑰放入HashMap后會發生什么?

將重復的密鑰放入HashMap后會發生什么?

慕的地6264312 2019-10-24 10:56:21
如果我多次將相同的鍵傳遞給HashMap的put方法,那么原始值會怎樣?如果值重復出現該怎么辦?我沒有找到任何文檔。情況1:密鑰的覆蓋值Map mymap = new HashMap();mymap.put("1","one");mymap.put("1","not one");mymap.put("1","surely not one");System.out.println(mymap.get("1"));我們得到surely not one。情況2:重復值Map mymap = new HashMap();mymap.put("1","one");mymap.put("1","not one");mymap.put("1","surely not one");// The following line was added:mymap.put("1","one");System.out.println(mymap.get("1"));我們得到one。但是其他值怎么辦?我在向學生教授基礎知識,有人問我這個問題。是Map等,其中最后一個值引用(但在內存中)水桶?
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

密鑰的先前值將被刪除,并用新的替代。


如果您想保留所有值,則可以考慮實現如下所示:


import org.apache.commons.collections.MultiHashMap;

import java.util.Set;

import java.util.Map;

import java.util.Iterator;

import java.util.List;

public class MultiMapExample {


   public static void main(String[] args) {

      MultiHashMap mp=new MultiHashMap();

      mp.put("a", 10);

      mp.put("a", 11);

      mp.put("a", 12);

      mp.put("b", 13);

      mp.put("c", 14);

      mp.put("e", 15);

      List list = null;


      Set set = mp.entrySet();

      Iterator i = set.iterator();

      while(i.hasNext()) {

         Map.Entry me = (Map.Entry)i.next();

         list=(List)mp.get(me.getKey());


         for(int j=0;j<list.size();j++)

         {

          System.out.println(me.getKey()+": value :"+list.get(j));

         }

      }

   }

}


查看完整回答
反對 回復 2019-10-24
  • 3 回答
  • 0 關注
  • 571 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號