输出二维数组列表的内容



我正在努力让这段代码工作。应该发生的是它创建一个 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);

最新更新