输出2d arrayList的内容

时间:2014-11-21 19:54:20

标签: java arraylist

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

1 个答案:

答案 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);