Java 输出2d arrayList的内容

Java 输出2d arrayList的内容,java,arraylist,Java,Arraylist,我正在努力使这个代码正常工作。它应该创建一个2d arraylist,然后向该2d arraylist添加一些arraylist。然后获取用户输入并将其添加到2d数组中,并对其进行标记化。然后输出这些标记化的输入。输出应该是这样的,第一行将显示第一个arrayList,然后第二行将显示第二个arrayList的内容,依此类推。我收到错误消息,大小5,大小5 String transState; trans = new ArrayList<List<String>

我正在努力使这个代码正常工作。它应该创建一个2d arraylist,然后向该2d arraylist添加一些arraylist。然后获取用户输入并将其添加到2d数组中,并对其进行标记化。然后输出这些标记化的输入。输出应该是这样的,第一行将显示第一个arrayList,然后第二行将显示第二个arrayList的内容,依此类推。我收到错误消息,大小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) );
        }
    }
字符串转换状态;
trans=新阵列列表(5);
ArrayList t=新的ArrayList(5);
对于(i=1;i<5;i++){
反式加法(t);
}
对于(i=1;i<5;i++){
对于(j=0;j<5;j++){
transState=s.nextLine();
trans.get(i).get(j).add(transState);
trans.get(i).get(j).split(transState);
}
}
对于(i=0;i<5;i++){
对于(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);

除此之外,您还会遇到以下问题:

trans.get(i).get(j).add(transState);
应该是

trans.get(i).add(transState);
//trans.get(i) returns List<String>

据我所知,
trans.get(I.get(j)
应该抛出一个IndexOutOfBoundsException,因为内部列表(即
t
)都是空的。我按照你的建议做了更改,我得到了超出范围的错误索引5大小5。事实上,我的错误。我把你的代码抄错了。你的方法很好,谢谢你知道我怎样才能证明我的结果。我想确定用户是否输入了多个用逗号分隔的内容。不确定这是否是您要查找的内容:
transState=transState.replaceAll(“\\s+”,“,”)就在
trans.get(i).add(transState)之前
trans.get(i).add(transState);
//trans.get(i) returns List<String>
trans.get(i).get(j).split(transState);