Java 如何在显示整个数据时避免索引越界异常
有人能帮我检测(i=0;iJava 如何在显示整个数据时避免索引越界异常,java,oop,exception,Java,Oop,Exception,有人能帮我检测(i=0;i
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:659)
at java.util.ArrayList.get(ArrayList.java:435)
at Test.displaywholedata(Test.java:52)
at Test.main(Test.java:139)
Command execution failed.
对于(int j=0;ji
是0到listofGroups.size()
但是您可以使用i
访问listofsports
j
是0到listofsports.size()
但是您可以使用j
访问listofGroup
你交换了i和j。或者交换for循环中的is和js的println中的所有is和js。按照惯例,for循环是正确的,所以请更改println。你如何知道
listofGroups
和listofsports
的大小相同?你可以对照listofGroups
检查i
,然后使用它索引到listofsports
-实际上,经过再三考虑,看起来您有i
和j
反向:-)请提供运动和组的定义您的Test
类可能甚至没有这个listofsports.get(i).getListofgroups().get(j)
structure.getlistofgroups是运动类中组列表的获取程序我尝试在println中交换,但错误仍然存在。您需要将ypur println拆分为3行,以查看哪个get()
失败-您是否全部更改了3行?
public static void displaywholedata() {
int i;
for (i = 0; i < listofGroups.size(); i++) {
for (int j = 0; j < listofsports.size(); j++) {
System.out.println(listofsports.get(i).getSportsplayed() + " " + listofsports.get(i).getListofgroups().get(j).getThenamegroup() + " ");
}
}
displaywholedata(); }
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:659)
at java.util.ArrayList.get(ArrayList.java:435)
at Test.displaywholedata(Test.java:52)
at Test.main(Test.java:139)
Command execution failed.
for (i = 0; i < listofGroups.size(); i++) {
for (int j = 0; j < listofsports.size(); j++) {
System.out.println(listofsports.get(i).getSportsplayed() + " " + listofsports.get(i).getListofgroups().get(j).getThenamegroup() + " ");
}