Dav*_*lle 1 java arrays java-stream
我正在编写一个从CSV文件中获取数据的Java程序.对于每一行数据,我需要使用相应的标题作为键将每个数据元素放入映射中.例如,headerRow [7]和dataElements [7]应该是地图中的键值对.
下面是我传统上使用Java编写的代码:
private Map<String, Double> readLine(String[] headerRow, String[] dataElements) {
Map<String, Double> headerToDataMap = new HashMap<>();
for (int i=0; i < nextLine.length; i++) {
headerToDataMap.put(headerRow[i], Double.valueOf(dataElements[i]));
}
return headerToDataMap;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用Java 8流编写这段代码 - 请记住我是在同时迭代两个数组?
你可以在vanilla Java 8中得到最接近的东西
IntStream.range(0, nextLine.length())
.boxed()
.collect(toMap(i -> headerRow[i], i -> dataElements[i]));
Run Code Online (Sandbox Code Playgroud)