gpt4 book ai didi

Java ArrayList ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 21:34:32 26 4
gpt4 key购买 nike

我正在制作一个口袋妖怪类型的匹配计算器(水胜火等),我遇到了一个相当奇怪的错误。我正在迭代包含该神奇宝贝的所有弱点的 ArrayList,并将它们与所有阻力进行比较,以查看是否有任何阻力被抵消。 Here's GitHub 上的存储库。 src/main/Pokemon.java 的第 140 行抛出异常。我已经考虑了删除项目时索引的变化,但仍然没有运气。这是有问题的循环:

//Check 2x weakness v 2x Resist
eDiff = 0;
rDiff = 0;
for (int e = 0; e < effective.size()-eDiff; e++) {
for (int r = 0; r < resist.size()-rDiff; r++) {
if (effective.get(e-eDiff).equals(resist.get(r-rDiff))) {
effective.remove(e-eDiff);
resist.remove(r-rDiff);
eDiff++;
rDiff++;
}
}
}

有什么想法吗?

最佳答案

例如,当 rDiff 变为 1 时,您可以看到 r-rDiff 可能为负数,并且 get 会导致错误。

您应该在其中使用 eDiffrDiff 修改该循环。

我认为类似的东西应该有效:

for (int e = 0; e < effective.size(); e++) {
for (int r = 0; r < resist.size(); r++) {
if (effective.get(e).equals(resist.get(r))) {
effective.remove(e);
resist.remove(r);
e--;
break;
}
}
}

关于Java ArrayList ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37061469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com