【问题标题】:Why does this array have 14 elements instead of 13?为什么这个数组有 14 个元素而不是 13 个?
【发布时间】:2015-10-11 01:10:52
【问题描述】:

我试图弄清楚为什么当一副牌中只有 13 张牌时这种方法使用 14 个元素。这是有问题的方法。

public int meldSets(){

int[] rankCount = new int[14];
for (Card c : this){
    rankCount[c.getRank()] +=1;
}

【问题讨论】:

  • 因为您要定义 14 个元素 - new int[14];,所以请改用 13 个元素数组 - new int[13];
  • 好吧,你分配了 14 个元素的数组。 13 个元素的数组就足够了吗?
  • 如果不查看其余代码,我们无法说出原因。也许作者这样做是为了安全。也许有更多的卡。也许有一个小丑等级。谁知道?只有提供更多信息(代码)才能回答这个问题。
  • 不可能在没有看到其余代码的情况下说,但我怀疑某处有一个循环指望列表以空值终止。
  • 或者可能是因为排名从 1 (ace) 开始,而数组索引从 0 开始,而作者虽然使用索引 7 来表示排名 8,但令人困惑。

标签: java arrays iterator


【解决方案1】:

int[14] 有 14 个元素,从 0 到 13 枚举。Java 和许多其他语言中的数组从 0 开始。您可以选择始终从面值中减去 1 来获取数组中的位置,或者您可以忽略数组中的第一个位置。

您可以找到更多信息here

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2012-07-09
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多