将扑克牌的arraylist中的所有数值相加

时间:2015-01-27 21:21:25

标签: java arraylist sum

我试图将随机生成的牌组中的所有数值相加,但我在使用它时遇到一些困难。 到目前为止我有:

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而不是卡的数值,任何想法我怎么能解决这个问题?感谢

3 个答案:

答案 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();