我正在努力让这段代码运转起来。应该发生的是它创建了一个2d arraylist,然后为那个2darraylist增加了一些arraylist。然后获取用户输入并将其添加到2d阵列并标记它。然后输出那些标记化的输入。输出应该是这样,第一行将显示第一个arrayList,然后第二行将显示第二个arraylist的内容,依此类推。我收到错误信息outofbound,大小5大小5.
String transState;
trans = new ArrayList<List<String>>(5);
ArrayList<String> t = new ArrayList<String>(5);
for (i = 1; i < 5; i++) {
trans.add(t);
}
for (i = 1; i < 5; i++) {
for (j = 0; j < 5; j++){
transState = s.nextLine();
trans.get(i).get(j).add(transState);
trans.get(i).get(j).split(transState);
}
}
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
System.out.println( trans.get(i).get(j) );
}
}
答案 0 :(得分:0)
似乎问题就在这里:
ArrayList<String> t = new ArrayList<String>(5);
for (j = 0; j < 5; j++)
trans.add(t);
当你应该向校长ArrayList
添加不同的ArrayList
时,你会多次添加相同的ArrayList
,如下所示:
for (j = 0; j < 5; j++) {
ArrayList<String> t = new ArrayList<String>(5);
trans.add(t);
}
除此之外,你会遇到一个问题:
trans.get(i).get(j).add(transState);
应该是
trans.get(i).add(transState);
//trans.get(i) returns List<String>
此外,这条线没有意义:
trans.get(i).get(j).split(transState);