gpt4 book ai didi

java - 包含 CSV 文件数据的 Arraylist 充满了空值?

转载 作者:行者123 更新时间:2023-12-01 09:58:19 26 4
gpt4 key购买 nike

对于一个问题,我必须找到列中唯一字符串的数量并将其写入 CSV 文件。

我的计划是将第一个字符串放入 Arraylist 中并循环遍历该列并添加不在 Arraylist 中的任何字符串

它适用于任何普通的 Arraylist,但由于某种原因,包含 CSV 文件数据的 Arraylist 全部为空

谁能向我解释一下这是为什么以及如何解决它?我的代码如下。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;

public class uniqueTrips {
static ArrayList<String> removeDuplicates(ArrayList<String> list) {

ArrayList<String> result = new ArrayList<>();

HashSet<String> set = new HashSet<>();

for (String item : list) {

if (!set.contains(item)) {
result.add(item);
set.add(item);
}
}
return result;
}

public static void main(String[] args) throws IOException {

ArrayList<String> trips = new ArrayList<String>();
try {
BufferedReader reader = new BufferedReader(new FileReader("Passenger_Weather_Combined.csv"));
BufferedWriter writer = new BufferedWriter(new FileWriter("result.csv"));
double[] attribute = new double[15];
double[][] attributes = new double[77284][15];
String[][] attributes2 = new String[77284][15];
String line = reader.readLine();
int number = 0; // Rows!

trips.add(attributes2[1][9]);

while (line != null) {
String[] att = line.split(",");
attributes[number] = attribute;
line = reader.readLine();
}
System.out.println(removeDuplicates(trips).size());

writer.newLine();
number++;

writer.close();
reader.close();
} catch (IOException e) {

}

}

}

最佳答案

这里是您迭代文件行的地方:

while (line != null) {
String[] att = line.split(",");
attributes[number] = attribute;
line = reader.readLine();
}

但是,您实际上并没有触及读入的数据。您将行读入,将行拆分为列,并将其保存在att中。然后,从那时起,您就不再使用 att 中的值 - 相反,您使用变量 attribute,它不包含任何有意义的数据。尝试将循环更改为:

while (line != null) {
String[] att = line.split(",");

attributes[number] = new double[att.length];
for (int i = 0; i < att.length; i++)
attributes[number][i] = Double.parseDouble(att[i]);

line = reader.readLine();
number++; // Very important, otherwise you're always updating the same row...
}

关于java - 包含 CSV 文件数据的 Arraylist 充满了空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015378/

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