如何将ResultSet放入数组列表

时间:2018-04-04 11:23:18

标签: java arrays list refactoring resultset

我正在尝试将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&lt;对象&gt;然后到Object [],最后我将它添加到List&lt;对象[]取代。这似乎是最长的方式,但我无法重构它以提高质量。

1 个答案:

答案 0 :(得分:0)

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

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

这是否更快,你必须测量。