gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:04:00 24 4
gpt4 key购买 nike

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

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/

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