我想将数据保存在另一个列表的实例列表中。像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]]
我不知道问题出在哪里。任何知道的人,请帮帮我。
答案 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();
}