簡體   English   中英

如何在HashMap中獲取重寫的鍵值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM