gpt4 book ai didi

java - 删除 ArrayList 元素时出现 IndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 06:54:13 25 4
gpt4 key购买 nike

我这里有这段代码(使用 lwjgl 但应该没有实际意义)来尝试在按 esc 键时暂停游戏。我使用带有按键的 ArrayList 来跟踪按下的内容和未按下的内容。

public List<Integer> keys = new ArrayList<Integer>();

public void get() {
if (isKeyDown(KEY_ESCAPE) && !keys.contains(KEY_ESCAPE)) {
keys.add(KEY_ESCAPE);
keyEscape();
}
}

public void rem() {
if (!isKeyDown(KEY_ESCAPE) && keys.contains(KEY_ESCAPE))
keys.remove(KEY_ESCAPE);
}

private void keyEscape() {
Screen.paused ^= true;
}

这是由循环调用的,它在循环中按顺序依次执行 get()rem() 。当我松开 ESC 时,这给了我一个很棒的 java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 at keys.remove(KEY_ESCAPE);

有人有什么见解可以分享吗?

最佳答案

KEY_ESCAPE 的值是多少?

它可能是值为 1 的 int,因此您无需删除具有该值的对象,而是删除位置 1 处的对象,而该对象显然不存在。

关于java - 删除 ArrayList 元素时出现 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549021/

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