【发布时间】:2019-04-26 09:48:22
【问题描述】:
这是我下面代码的一部分。当我使用 for 循环(注释掉)时,它可以工作。当我使用这个流时 - 它有点工作,但在我从未预料到的方法上表现不佳。
Spravochnik spr = new Spravochnik();
ResultSetMetaData rsmeta = rs.getMetaData();
List<String> columnNames = new ArrayList<>();
List<List<String>> valuesInRows = new ArrayList<List<String>>();
int columnCount = rsmeta.getColumnCount();
IntStream.range(0, rsmeta.getColumnCount()).forEach(i -> {
try {
columnNames.add(rsmeta.getColumnName(i));
} catch (SQLException e) {
e.printStackTrace();
}
});
// for(int column = 1; column <= columnCount; column++){
// columnNames.add(rsmeta.getColumnName(column));
// }
猜我只是我的实现有误。有什么建议可以在这里改进吗?谢谢!
【问题讨论】:
-
显然,在流中,您从 0 开始,而在 for 循环中,您从 1 开始。在 ResultSet 中,列从 1 开始索引。
-
IntStream.rangeClosed(1, rsmeta.getColumnCount())
标签: java spring java-stream