gpt4 book ai didi

Java制作数字文件的二维列表对象

转载 作者:行者123 更新时间:2023-12-02 09:44:48 24 4
gpt4 key购买 nike

我在像这样的文件中有一个数字金字塔

  • 1
  • 2 3
    • 3 4 5

我正在尝试使用文件中的数字填充 2D Arraylist。我试图先填充一行数字,然后将该行添加到一列中,但我找不到正确的输入测试来完成此操作。

ArrayList<Integer> rows = new ArrayList<Integer>(); 
ArrayList<ArrayList<Integer>> columns = new ArrayList<ArrayList<Integer>>();
try {
Scanner s = new Scanner(new File("1.txt"));
//while (s.hasNext()) {
String a = s.next();
String b = s.next();
s.nextLine();

while(s.hasNextLine()) {
while(s.hasNextInt() ) {
// I want to say while( has more lines is true )
// ( create a row of ints and append it to columns
rows.add(s.nextInt());

}
columns.add(rows);
rows.clear();
}

catch (FileNotFoundException e) {
e.printStackTrace();
}

编辑:我添加的最后一行是 [1, 2, 3, 3, 4, 5] 而不是 [3, 4, 5],因为 s.hasNextInt() 在迭代时始终为 true,所以 while(in.hasNextLine()) 只运行一次

最佳答案

快速浏览一下,我会说这里的这一行是您的问题:rows.clear();

您的rows变量仍然指向将其添加到columns之前所指向的同一个列表,因此如果您清除它,那么您所做的就是将空的 ArrayList 添加到

替换这一行:

rows.clear();

这样:

rows = new ArrayList<>();

这样,rows 变量仍然指向一个空的、全新的 ArrayList,但它之前指向的 ArrayList 是独自一人。

关于Java制作数字文件的二维列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56745161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com