【发布时间】:2016-02-13 21:18:25
【问题描述】:
我正在创建一个简单的游戏,其中 2 名玩家从一堆中取出硬币。这些堆是数组列表的每个元素,每个堆的硬币数量是像这样存储在其中的整数。
3 堆不同价值的硬币:
[4,5,2]
但是我遇到了这个异常
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
这是我的方法
static void removeCoinsAt(int index, int numCoins){
//exception on this line
coins.set(index, coins.get(index) - numCoins);
for(int i = 0; i < coins.size(); i ++){
int val = coins.get(i);
if (val == 0) {
coins.remove(i);
}
}
}
即使在 index = 3 和 numCoins = 2 时也会发生这种情况。我尝试在任一索引上添加 -1
coins.set(index-1, coins.get(index-1) - numCoins);
但我仍然以某种方式遇到此错误。我知道 Arraylist 从 0 开始计算其元素,并且我查看了这些解决方案 here、here 和 here,但我仍然无法弄清楚。
【问题讨论】:
-
你的硬币数组有多大??是 3 吗?
-
检查你有错误的那一行(你会在错误响应中找到它),然后想一想,为什么会出现错误以及为什么这样的值会出现在有错误的地方。这种方法真的没那么难,而且当你想获得编程感时,你要做的第一件事就是发现并纠正自我错误。是的,这是一个自找困难的地方,但之后你会尝试自己解决问题。
标签: java arraylist indexing elements