gpt4 book ai didi

java - 二维数组列表java

转载 作者:行者123 更新时间:2023-11-30 06:58:43 25 4
gpt4 key购买 nike

我正在尝试将文本文件中的数据保存到二维数组列表中。这是我的二维数组列表

private ArrayList<ArrayList<String>> students = new ArrayList<ArrayList<String>>();

这是我的数组列表

private ArrayList<String> a = new ArrayList<String>();

在这里我试图用数据填充我的列表

        public void addStudent(String student){
a.add(student);
}
public void addToList(){
students.add(a); //


System.out.println("TEST1 " + students);

a.clear();

System.out.println("TEST2 " + students);
}

这是我的阅读方法

public void read(){

BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("C:\\Users\\SuperUser\\IdeaProjects\\Test\\src\\data.txt"));
String line = "";
int num = 0;
while((line = br.readLine()) != null){
String [] tokens = line.split("\\s+");
if(tokens.length == 2){
if(num != 0){
a.addToList();
}
num++;
}else{
a.addStudent(tokens[0]);
}
}
// a.addToList();
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}

这是我的输出

TEST1 [[Antanas, Kazys, Petras, Sonata]]
TEST2 [[]]
TEST1 [[Jonas, Martynas, Arturas, Vacys, Robertas], [Jonas, Martynas, Arturas, Vacys, Robertas]]
TEST2 [[], []]
TEST1 [[Mykolas, Aldona, Asta, Viktoras, Arturas, Vytas], [Mykolas, Aldona, Asta, Viktoras, Arturas, Vytas], [Mykolas, Aldona, Asta, Viktoras, Arturas, Vytas]]
TEST2 [[], [], []]

那么为什么在清除我的列表 a.clear() 后它会影响我的二维数组列表?为什么我会丢失数据?

编辑致 Abbé Résina

Information 4
Antanas 1 6.95
Kazys 2 8.65
Petras 2 7.01
Sonata 3 9.13
Economy 5
Jonas 1 6.95
Martynas 3 9.13
Arturas 2 7.01
Vacys 2 8.65
Robertas 3 6.43
Robotics 6
Mykolas 1 6.95
Aldona 3 9.13
Asta 2 7.01
Viktoras 2 8.65
Arturas 5 8.32
Vytas 3 7.85
Literature 4
Jonas 1 6.95
Zigmas 3 9.13
Arturas 2 7.01
Simas 3 6.43

最佳答案

发生的情况是您将相同的 ArrayList 引用添加到您的“2D ArrayList”。

也许您可以尝试在每次要添加新学生时都复制一份 ArrayList

或者您可以在每次要添加新学生时声明一个新的 ArrayList。

关于java - 二维数组列表java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32385013/

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