【问题标题】:How to put ResultSet to List of Array如何将 ResultSet 放入数组列表
【发布时间】:2018-09-13 22:32:45
【问题描述】:

我正在尝试将 ResultSet 放入 List。这是我的代码

List<CSVRaportDescription[]> result = new ArrayList<>();
List<CSVRaportDescription> csvRaportDescList = new ArrayList<>();
ResultSet resultSet = dataSource.executeQuery(query.toString().replace("?", dayList.toString()));
resultSet.forEach(row->{
    csvRaportDescList.add(new CSVRaportDescription(row.getObject("value")));
});
CSVRaportDescription[] csvRaportArray = csvRaportDescList.toArray(new CSVRaportDescription[csvRaportDescList.size()]);
result.add(csvRaportArray);

有什么方法可以加快速度吗?

首先我将结果集放入 List,然后放入 Object[],最后将其添加到 List。这似乎是最长的方式,但我无法将其重构为更好的质量。

【问题讨论】:

标签: java arrays list refactoring resultset


【解决方案1】:

如果您流式传输结果List,则可以跳过中间列表。

CSVRaportDescription[] result = resultSet.all().stream()
    .map(row -> new CSVRaportDescription(row.getObject("value")))
    .toArray(CSVRaportDescription[]::new);
return Collections.singletonList(result);

这是否更快,您必须进行测量。

【讨论】:

  • 肯定会更快,但我不能只返回,因为我在那里有迭代。我没有粘贴整个代码。
  • 总的来说它对我帮助很大。你解决我的问题。非常感谢:)
猜你喜欢
  • 2020-06-27
  • 2012-01-13
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多