簡體   English   中英

如何更新作為對象的 HashMap 的值?

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

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