gpt4 book ai didi

Java 将列表存储到数组

转载 作者:行者123 更新时间:2023-12-02 05:23:34 24 4
gpt4 key购买 nike

我正在尝试像这样读取 CSV 文件:

1,0,0,0,2,0,0,2,
0,2,0,0,0,0,0,5,
0,0,0,0,0,0,5,0,

这是我的预期结果:

[1, 5, 8]
[2, 8,]
[7]

这是我的 Java 编码:

CSVReader a = new CSVReader(new FileReader("CM.csv"));
List<String[]> aa = a.readAll();

List<Integer> list = new ArrayList<>();
Object[] CM = new Object[3];

for (int i = 0; i < aa.size(); i++) {
for (int x = 0; x < aa.get(i).length-1; x++) {
if ( Integer.parseInt(aa.get(i)[x].trim()) >= 1 ){
list.add(x+1);
}
}
CM[i] = list;
list.clear();
}

for (int i = 0; i < CM.length; i++) {
System.out.print(CM[i]);
System.out.print("\n");
}

但是我得到了 Null 结果。如果我删除 list.clear() 行,则会得到如下奇怪的结果:

[1, 5, 8, 2, 8, 7]
[1, 5, 8, 2, 8, 7]
[1, 5, 8, 2, 8, 7]

我想将列表存储到数组中,请忽略我读取 CSV 文件的方式...

最佳答案

替换list.clear();list = new ArrayList<>();

您正在将列表分配给 CM[i] ,当您调用 list.clear() 时,它会清除列表并将其设置为空列表,因为您的 CM 变量引用列表对象,因此其中不会有任何值。

获取值:

for (int i = 0; i < CM.length; i++) {
List dataList = (List) CM[i];
for (int j = 0; j < dataList.size(); j++) {
// do your stuff
System.out.println(dataList.get(j));
}
}

关于Java 将列表存储到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26284445/

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