如果值是名为Hand
的类public class Hand implements Iterable<Card>{
protected List<Card> cards;
.....
.....
}
我的HashMap是
HashMap<Integer, Hand> hashMap;
如果我想将Card对象添加到Hand
的实例字段,即cards
,我是否需要
hashMap.get(i).cards.add(Card Object)
或者我需要做什么
hashMap.put(i, hashMap.get(i).cards.add(Card Object))
答案 0 :(得分:2)
假设display: inline-block;
实例已存在,您可能需要检索实例:
Hand
获得实例后,您需要访问其Hand hand = hashMap.get(i);
列表并添加另一张卡片:
cards
或者在您自己的代码中:
Card card = ...;
hand.cards.add(card); //consider using a getMethod to get the cards
您不需要重新映射hashmap中的hand元素,因为您没有替换实际的hashMap.get(i).cards.add(card);
对象,因此在地图中对它的引用保持不变。您所做的只是通过在Hand
的卡片中添加项目来修改其中一个属性。
答案 1 :(得分:0)
在cards
类中使用Hand
的getter,如
protected List<Card> getCards() {
return this.cards;
}
然后更新如下 -
hashMap.get(i).getCards().add(new Card())
尝试
hashMap.put(i, hashMap.get(i).getCards().add(new Card()))
正试图将boolean
从add
返回到索引i
,而不会对您的逻辑有效。