我正在构建纸牌游戏。我有一个名为Card的类,其中包含排名和套装的枚举类。
Rank包含TWO(2),THREE(3),FOUR(4),FIVE(5),SIX(6)等。
我还有一个名为Hand的类,它包含一个Card类型的arraylist。我需要能够将牌的总价值存储在手中。例如。包含3个俱乐部和5个钻石和1个心灵之王的手需要等于19(3 + 5 + 11)。
我如何用Java编写这个?
答案 0 :(得分:2)
假设:
enum Card {
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6);
private final int value;
private Card(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
在java 8中:
List<Card> cards = ....;
cards.stream().mapToInt(Card::getValue).sum();
答案 1 :(得分:1)
建议:
public int getValue()
方法,该方法返回int value
属性所保留的值(或您为此属性提供的任何名称)。getValueSum()
(或者您称之为此方法的任何内容)中,迭代您的ArrayList<Card>
,通过调用此方法对值进行求和。