[英]How update a value of a HashMap that is an object?
如果值是一個名為 Hand 的類
public class Hand implements Iterable<Card>{
protected List<Card> cards;
.....
.....
}
我的 HashMap 是
HashMap<Integer, Hand> hashMap;
如果我想在Hand
ie cards
的實例字段中添加一個 Card 對象,我需要做
hashMap.get(i).cards.add(Card Object)
還是我需要做
hashMap.put(i, hashMap.get(i).cards.add(Card Object))
假設Hand
實例已經存在,您可能想要檢索該實例:
Hand hand = hashMap.get(i);
擁有實例后,您希望訪問其cards
列表並向其中添加另一張卡片:
Card card = ...;
hand.cards.add(card); //consider using a getMethod to get the cards
或者在您自己的代碼中:
hashMap.get(i).cards.add(card);
您不需要重新映射哈希圖中的 hand 元素,因為您沒有替換實際的Hand
對象,因此映射中對它的引用保持不變。 您所做的只是通過在Hands
的卡片中添加一個項目來修改其屬性之一。
對Hand
類中的cards
使用吸氣劑,例如
protected List<Card> getCards() {
return this.cards;
}
然后更新如下 -
hashMap.get(i).getCards().add(new Card())
嘗試
hashMap.put(i, hashMap.get(i).getCards().add(new Card()))
試圖將add
返回的boolean
放在索引i
,並且不適用於您的邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.