我正在努力让这段代码工作。应该发生的是它创建一个 2d 数组列表,然后将一些数组列表添加到该 2darraylist 中。然后获取用户输入并将其添加到 2D 数组并对其进行标记化。然后输出这些标记化输入。输出应该是这样,第一行将显示第一个数组列表,然后第二行将显示第二个数组列表的内容,依此类推。我收到出站错误消息,大小 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) );
}
}
似乎问题就在这里:
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);