我希望把值的HashMap像下面,如何將鍵值作爲其他地圖的關鍵?
map1.put("A",3);
map1.put("A",5);
map1.put("B",4);
map1.put("B",8);
現在我想讓(「A」,3)鍵/值對作爲其他地圖一樣關鍵, 讓的說(「A」, 3)是key1同樣的方式 map2.put(key1,abc);
對其他人也一樣。你能幫我做這個嗎?
我希望把值的HashMap像下面,如何將鍵值作爲其他地圖的關鍵?
map1.put("A",3);
map1.put("A",5);
map1.put("B",4);
map1.put("B",8);
現在我想讓(「A」,3)鍵/值對作爲其他地圖一樣關鍵, 讓的說(「A」, 3)是key1同樣的方式 map2.put(key1,abc);
對其他人也一樣。你能幫我做這個嗎?
你可以得到那些(鍵,值)對與使用entrySet
方法的集合。迭代該集合,並將元素用作其他HashMap
中的鍵。
事情是這樣的:
// given HashMap<String, Integer> map1:
for (Map.Entry<String, Integer> entry : map1.entrySet())
map2.put(entry, "some string value");
或者你可以將它們存儲在像這樣的對:
class Pair
{
public String first;
public Integer second;
public Pair(String first, Integer second)
{
this.first = first;
this.second = second;
}
}
然後創建對的HashMap的 - 串對:
HashMap<Pair, String> map = new HashMap<Pair, String>();
在基於散列的結構中用作鍵的任何類都必須。實現'equals'和'hashcode' – maasg 2012-08-04 09:09:45
注代碼中存在一個小小的錯誤。 HashMap可能只有一個值對應一個鍵,所以在你的情況下,它只包含兩個鍵值對:(「A」,5)和(「B」,8)。 – dgl 2012-08-03 16:10:59
我想知道你爲什麼想這樣做。你以後想如何在你的第二張地圖中查找值? – maasg 2012-08-04 09:01:05