Я довольно новое в Java, и я не могу обойти сообщение об ошибкеНе могу обойти java.lang.ArrayIndexOutOfBoundsException: -1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:371)
at java.util.ArrayList.get(ArrayList.java:384)
at djurfarm.Animals.huntCatMouse(Animals.java:213)
at djurfarm.Djurfarm.main(Djurfarm.java:24)
Java Result: 1
Я знаю, что это значит, что индекс где-то ниже или выше того, каким он должен быть, но я не могу для жизни понять, почему это происходит. Может быть, это потому, что я смотрел на себя слепо и не увижу, где логика терпит неудачу. Любая помощь будет принята с благодарностью. Вот код для метода:
public void huntCatMouse() {
while (!CatList.isEmpty()) {
for (int i = 0 ; i < CatList.size(); i++) {
try {
TimeUnit.MILLISECONDS.sleep(500);
int slump = MouseList.size() - 1;
int num = CatList.size() - 1;
Cat CatRemover = CatList.get(num);
Mouse aMouse = MouseList.get(slump);
if (aMouse.getStrength().equals(false)) {
System.out.println("En katt fångar en mus.");
CatList.remove(CatRemover);
MouseList.remove(aMouse);
} else if (aMouse.getStrength().equals(true)) {
System.out.println("En mus lyckas fly från en katt.");
CatList.remove(CatRemover);
MouseList.remove(aMouse);
}
} catch (InterruptedException e) {
System.out.println("Fel i CatMouse");
}
if (MouseList.isEmpty()) {
System.out.println("Empty list");
break;
}
}
}
}
Не похоже, чтобы вы проверяли размер MouseList где-либо перед тем, как позвонить ему. – Derek
Вы пробовали отладку в дополнение к простому проверке кода? – Brian
Какова ценность 'MouseList.size()'? –