计算总枚举值Java

时间:2016-01-03 13:02:21

标签: java arraylist enums playing-cards totals

我正在构建纸牌游戏。我有一个名为Card的类,其中包含排名和套装的枚举类。

Rank包含TWO(2),THREE(3),FOUR(4),FIVE(5),SIX(6)等。

我还有一个名为Hand的类,它包含一个Card类型的arraylist。我需要能够将牌的总价值存储在手中。例如。包含3个俱乐部和5个钻石和1个心灵之王的手需要等于19(3 + 5 + 11)。

我如何用Java编写这个?

2 个答案:

答案 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属性所保留的值(或您为此属性提供的任何名称)。
  • 在Hand class getValueSum()(或者您称之为此方法的任何内容)中,迭代您的ArrayList<Card>,通过调用此方法对值进行求和。