concatColumn pops out UnsupportedOperationException



我正在做一个简单的数据帧,它可以读取和写入CSV,同时可以编辑数据。当我试图将一个新列连接到我的数据帧时,遇到了一个问题。

这是文件的示例输入:

Name,Age,Salary
Lim,20,2000
Tan,20,3000
Mah,19,2500
Roger,10,4000

这是我连接列的代码:

String filePath = "...Book1.csv";
String line;
List<List<String>> data = new ArrayList();
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
while ((line = br.readLine()) != null) {
List<String> column = Arrays.asList(line.split(","));
data.add(column);
}
} catch (Exception e) {
System.out.println(e);
}
System.out.println(data.toString());
String [] newColumn = {"Colour", "Green", "Blue", "Black","Yellow"};
for(int i = 0 ; i<data.size(); i++){
List<String> temp = data.get(i);
temp.add(newColumn[i]);
}
System.out.println(data.toString());

输出如下:

[[Name, Age, Salary], [Lim, 20, 2000], [Tan, 20, 3000], [Mah, 19, 2500], [Roger, 10, 4000]]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.AbstractList.add(AbstractList.java:153)
at java.base/java.util.AbstractList.add(AbstractList.java:111)
at Testing.main(Testing.java:31)
System.out.println(data.toString());

如何更改代码以读取newColumn并将其存储到data

来自Arrays.asList:的Javadoc

返回由指定数组支持的固定大小列表

如果你想添加到一个新的ArrayList中,你需要创建一个。

List<String> column = new ArrayList(Arrays.asList(line.split(",")));

相关内容

  • 没有找到相关文章

最新更新