将数据保存在ArrayList的ArrayList中

时间:2014-02-22 03:56:48

标签: java android arraylist

我想将数据保存在另一个列表的实例列表中。像2D ArrayList一样 但是,数据无法正确读取

这是构造函数的代码

ArrayList<ArrayList<Integer>> Planets;
Planets = new ArrayList<ArrayList<Integer>>();

这是从文件

读取数据的功能
public boolean readFile(String str){
    try(BufferedReader br = new BufferedReader(new FileReader(str))) {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();
        ArrayList temp = new ArrayList<Integer>();
        while (line != null) {
            temp.addAll(Arrays.asList(line.split(" ")));
            temp = getIntegerArray(temp);

            Planets.add(temp);
            temp.clear();

            line = br.readLine();
        }
        System.out.println(Planets);
    }
    catch(Exception e){
        return false;
    }
    return true;
}

以下是文件“input.txt”的内容

1 0 0 0 0 0 0 0 1 0
1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

System.out.println(Planets)的生成输出;是

[[1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], []]

但它应该是

[[1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

我不知道问题出在哪里。任何知道的人,请帮帮我。

1 个答案:

答案 0 :(得分:3)

试试这个..

这样做会在ArrayList temp = new ArrayList<Integer>();循环内初始化while并删除temp.clear();,如下所示

    StringBuilder sb = new StringBuilder();
    String line = br.readLine();
    while (line != null) {
        ArrayList temp = new ArrayList<Integer>();
        temp.addAll(Arrays.asList(line.split(" ")));
        temp = getIntegerArray(temp);

        Planets.add(temp);

        line = br.readLine();
    }