【问题标题】:Add multiple records to List<List<Object>>将多条记录添加到 List<List<Object>>
【发布时间】:2021-01-21 21:01:58
【问题描述】:

我正在尝试在对象列表中添加多条记录,但我不知道该怎么做 (java)。

我发现唯一可行的方法是按字面意思做:

    List<List<Object>> values = Arrays.asList(
            Arrays.asList("84935", "01/02/2020", "01/02/2020", "resolved", "XXX", "XXX", "XXX", "XXX", "1", "1", "15", "0", "2020"),
            Arrays.asList("84936", "02/02/2020", "02/02/2020", "resolved", "XXX", "XXX", "XXX", "XXX", "1", "1", "15", "0", "2020"),
            Arrays.asList("84937", "03/02/2020", "03/02/2020", "resolved", "XXX", "XXX", "XXX", "XXX", "1", "1", "15", "0", "2020")
            );

我想读取一个.csv 文件并将该列表写入其中。当我尝试使用.addset 时,我得到了一个空指针异常并且我找不到解决方案。

是否可以通过循环自动添加记录?列表必须是 List&lt;List&lt;Object&gt;&gt;,因为这是 Google Sheets Api 允许的唯一方式。

谢谢。

【问题讨论】:

  • 你的代码是什么样的?您可能忘记在向其中添加元素之前初始化列表之一

标签: java arrays list object


【解决方案1】:

是的,绝对可以在循环中编写列表列表:

例如:

List<List<String>> list = new ArrayList<>();
for (String line: lines) {
    list.add(Arrays.asList(line.split(","));
}

如果您正在读取 CSV 文件,最好使用第三方库,例如 Apache CSVParser。

但是如果你坚持自己做:

List<List<String>> fields = Files.lines(fileName)
    .map(l -> Arrays.asList(l.split(",")))
    .collect(Collector.toList());

【讨论】:

  • 非常感谢。它工作得很好。我不知道我可以将它初始化为 ArrayList。 Java 太新了 :) 顺便说一句,我接受了你的回答。
猜你喜欢
  • 2018-07-17
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 2017-11-27
相关资源
最近更新 更多