java - Java for 循环中的列表列表

标签 java list loops for-loop arraylist

我有问题。我尝试做开发 程序多次询问我一些数字。我给出了数字列表。我尝试将它们保存在“列表”>中。数字可以按空格分割。现在我有这个代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TimeSeries {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    System.out.println("Numbers of rows:");
    Scanner in = new Scanner(System.in);
    int NumberLines = in.nextInt();
    in.nextLine();
    String Ciag;
    List<List<Integer>> ll = new ArrayList<List<Integer>>();
    List<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < NumberLines; i++) {
        list.clear();
        System.out.println("Add row " +(i+1));
        Ciag = in.nextLine();
        for (int t=0; t<Ciag.length(); t++) {

            if(Character.isWhitespace(Ciag.charAt(t)))
            {

            }
            else
            {list.add(Character.getNumericValue(Ciag.charAt(t)));
            }

        }

        System.out.println(list);
        ll.add(list);
        }

    System.out.println(ll);

}


    }

但我的输出是(示例):

Numbers of rows:
3
Add row 1
0 0 0
[0, 0, 0]
Add row  2
1 2 3
[1, 2, 3]
Add row  3
54 6 8
[5, 4, 6, 8]
[[5, 4, 6, 8], [5, 4, 6, 8], [5, 4, 6, 8]]

但是我需要 [[0,0, 0], [1, 2, 3], [5, 4, 6, 8]]

最佳答案

问题在于您多次将相同的列表添加到ll中。 您需要添加不同的列表才能获得您想要的行为。 为此,您需要在 for 循环的每次迭代中创建一个全新的列表,而不是清除并重用现有的列表

更改这些行:

List<List<Integer>> ll = new ArrayList<List<Integer>>();
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < NumberLines; i++) {
    list.clear();

对此:

List<List<Integer>> ll = new ArrayList<>();
for (int i = 0; i < NumberLines; i++) {
    List<Integer> list = new ArrayList<>();

关于java - Java for 循环中的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40444238/

相关文章:

java - 让Jbutton完全模仿 "X"按钮

java - 如何在 Android 中使用后台服务覆盖两次甚至 3 次单击电源按钮甚至音量增大/减小键?

java - Google 应用引擎 - PersistenceManager 的生命周期是什么?

python - 如何根据第二个索引列表重新排列一个列表

c - 自动在线法官拒绝我的数学难题解决方案

java - 无法连接到 MySQL - Glassfish 和 Hibernate

rbind 列表并恢复名称

list - F# 整数列表中的排序子列表

java - Thymeleaf、Javascript 内联和迭代

c++ - 使用指针变量打印特定的数组变量