【发布时间】:2019-04-03 18:07:19
【问题描述】:
即使我在 for 循环中明确指定我希望它在 arraylist.size 之前打印,终端也会返回 OutOfBounds 异常
public static void PrintPlayList() {
int lengthsongs = songs.size();
int lengthadds = adds.size();
int amountadds = 0;
for (int i = 0; i < lengthsongs; i++) {
playlist.add(songs.get(i));
if (amountadds < lengthadds) {
playlist.add(adds.get(amountadds));
amountadds++;
}
}
int lengthplaylist = playlist.size();
for (int i = 0; i < lengthplaylist; i++) {
System.out.println(songs.get(i).toString());
System.out.println(adds.get(i).toString());
}
}
这就是编译器返回的:这怎么可能?我该如何解决?
java.lang.IndexOutOfBoundsException: Index: 18, Size: 18
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Main.PrintPlayList(Main.java:153)
at Main.Interface(Main.java:55)
at Main.main(Main.java:34)
【问题讨论】:
-
第 153 行是哪一行?因为 get() 被调用了 3 次
-
@azro 第 153 行是 ;
System.out.println(songs.get(i).toString()) -
Printsongs.size() 和adds.size() 会在几秒钟内解决你的问题,下次考虑一下;)
标签: java for-loop printing indexoutofboundsexception