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