【发布时间】:2016-03-25 04:18:42
【问题描述】:
假设numberTracker = {1,15,6,8} 和numberString = {1,1,5,6,8}。 numberString 中的每个号码都有自己的磁贴。
我尝试将例如 1,5 设置为相同的平铺颜色,因为它在 numberTracker 中等于 15,而 tileIterator 包含与 numberString 相同的长度。代码完美运行,并且可以做到做。但是我得到java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
ListIterator < String > nmbTracker = numberTracker.listIterator();
ListIterator < Tile > tileIterator = tiles.listIterator();
Tile t;
int x = 0;
int y = 0;
while (nmbTracker.hasNext()) {
if (numberTracker.get(x).equals(numberString.get(y))) {
t = tileIterator.next();
t.setColor(tilePanel2.changeColour());
if (numberTracker.size() - 1 != x) {
x++;
}
if (numberString.size() - 1 != y) {
y++;
}
} else {
x++;
t = tileIterator.next();
t.setColor(tilePanel2.changeColour());
Color color = t.getColor();
t = tileIterator.next();
t.setColor(color);
y++;
y++;
}
repaint();
}
【问题讨论】:
-
为什么不自己调试看看呢?
标签: java arrays indexoutofboundsexception listiterator