当前位置: 首页 > 知识库问答 >
问题:

Java向量数组索引越界

越勇
2023-03-14

这似乎微不足道,但也许我对向量的理解并不是它应该是的。我在这段代码上得到[java.lang.ArrayIndexOutOfBoundsException:Array index out of range:1]。错误发生在第3行。既然look是基于向量的大小,那么数组怎么会越界呢?

方法“getChangeSets()”返回一个列表。该列表最初是作为向量创建的。

2   for (int i = 0; i < getChangeSets().size(); i++) {
3       ChangeSet currentChangeSet = getChangeSets().get(i);
4       if (currentChangeSet.getSequentialNumber() == sequentialNumber) {
5           return currentChangeSet;
6       }
7   }

共有1个答案

凌朗
2023-03-14

最好不要使用索引迭代

for (ChangeSet currentChangeSet : getChangeSets()) {
  if (currentChangeSet.getSequentialNumber() == sequentialNumber) {
    return currentChangeSet;
  }
}

我怀疑您的代码中发生的情况是getChangeSets()在调用之间改变大小,特别是变小。上面的代码只在循环第一次执行之前调用它一次。

 类似资料:
  • 问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥

  • 这是我的代码: 该程序的目的是要求用户输入一个字符串,然后统计字符串中每个字符的使用次数。 当我去编译程序时,它工作正常。当我运行程序时,我可以在弹出框中输入字符串,但是在我提交字符串并按确定后,我得到一个错误,说 我不完全确定问题是什么或如何解决。

  • 我的目标是创建一个新的实例,其中前2个元素是原始元素,之后是最后3个元素的中间值。例如,< code>[5,2,9,1,7,4,6,3,8]变成< code>[5,2,5,2,7,4,6,4,6]。 我解决这个问题的方法是创建2个新的数组列表,其中一个是从索引2开始的3个元素之间的子数组,具有排序,最后将新子数组的索引1放入我的新数组列表中。但是,这会遇到索引越界错误。

  • 我一直在四处寻找是否有任何东西可以帮助我,但我不太了解人们的回答,任何我所了解的似乎都不能解决问题!所以基本上正如标题所说,我得到了一个数组索引越界异常,但我不知道为什么。非常感谢任何帮助。 代码:

  • 我想从包含每个组中元素数量的向量创建一个包含每个元素的组标识符的向量。 例子: 我正在寻找一个向量如下: 我找到了一个涉及循环的解决方案: 但这看起来不太优雅。欢迎提出任何改进建议。

  • 我犯的错误 我的密码 我试图将数组的最后5个元素存储在temp 2中。那我就换了。有更简单的方法吗?将数组的前五个元素与后五个元素切换?你会如何用for循环切换它们?