[英]How to get the overridden keys value in HashMap
Map<String,String> mapp=new HashMap<>();
mapp.put("1", "abc");
mapp.put("1", "def");
System.out.println(mapp.size());
System.out.println(mapp.get("1"));
System.out.println(mapp);
o / p
1
def
{1=def}
如何獲取'abc'值並在地圖中以大小為1的形式呈現其值。
可以是哈希沖突的情況嗎,因為密鑰相同,它可以產生相同的哈希碼並存儲在相同的索引中嗎?
mapp.put("1", "def");
將返回鍵“ 1”的先前值“ abc”。
您可以通過以下方式看到它:
System.out.println(mapp.put("1", "def"));
之后,由於已被覆蓋,因此無法獲得“ 1”鍵的原始值。
這在put
的Javadoc中指定:
V java.util.Map.put(K鍵,V值)
將指定值與該映射中的指定鍵關聯(可選操作)。 如果該映射先前包含該鍵的映射,則將舊值替換為指定的值 。 (僅當m.containsKey(k)返回true時,才認為映射m包含鍵k的映射。)
返回值:
與key關聯的先前值 ,如果沒有key映射,則為null。
一旦在哈希圖中破壞了鍵的值,該值就所有意圖和目的都消失了。 如果需要跟蹤與鍵關聯的多個值,請考慮使用某種集合的映射:
使用列表的地圖:
Map<String, List<String>> mapp = new HashMap<>();
List<String> list = new ArrayList<>();
list.add("abc");
list.add("def");
mapp.put("1", list);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.