在Java 8中,如何一次遍历两个数组?

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流编写这段代码 - 请记住我是在同时迭代两个数组?

Lou*_*man 7

你可以在vanilla Java 8中得到最接近的东西

 IntStream.range(0, nextLine.length())
    .boxed()
    .collect(toMap(i -> headerRow[i], i -> dataElements[i]));
Run Code Online (Sandbox Code Playgroud)