我试图将随机生成的牌组中的所有数值相加,但我在使用它时遇到一些困难。 到目前为止我有:
public PackCards(int n) {
Card c;
pack = new ArrayList<Card>();
for (int i = 1; i <= n; i++) {
c = new Card();
pack.add(c);
}
}
public int totalPack() {
int sum =0;
for(int i = 0; i < pack.size(); i++)
{
sum = sum + pack.get(i);
}
}
但这给了我一个错误,因为我试图总结类卡的arraylist而不是卡的数值,任何想法我怎么能解决这个问题?感谢
答案 0 :(得分:2)
就是这一行:
sum = sum + pack.get(i);
你有一个类Card的ArrayList,所以get将返回对象Card,而不是整数值。
答案 1 :(得分:1)
你需要说:
sum = sum + pack.get(i).getCardValue()
或其他一些事情。您无法使用Card
对象添加int ...
答案 2 :(得分:0)
您需要在求和之前将卡映射到整数。使用流使这更明显:
return pack.stream()
.mapToInt(card -> card.getIntValue())
.sum();