Java 8列表<;字符串[]>;列出<;列表<;整数>&燃气轮机;

Java 8列表<;字符串[]>;列出<;列表<;整数>&燃气轮机;,java,java-stream,Java,Java Stream,我想阅读以下csv文件: 1,2,3 1,2,3 1,2,3 我使用的是Java8,我被困在从 列表至列表: 您需要使用内部流进行映射: Files.lines(filePath) .map(line -> line.split(",")) .map(array -> Arrays.stream(array).map(Integer::valueOf) .collect(Collectors.toList()))

我想阅读以下csv文件:

1,2,3
1,2,3
1,2,3
我使用的是Java8,我被困在从
列表
列表


您需要使用内部流进行映射:

Files.lines(filePath)
    .map(line -> line.split(","))
    .map(array -> Arrays.stream(array).map(Integer::valueOf)
                        .collect(Collectors.toList()))
    .collect(Collectors.toList());

这是我想到的

    List<String> list = Files.lines(path)
            .map(line -> line.split(","))
            .flatMap(Arrays::stream)
            .collect(Collectors.toList())
           ;
List List=Files.line(路径)
.map(直线->直线分割(“,”)
.flatMap(数组::流)
.collect(收集器.toList())
;

为什么有两个
map
步骤?为什么不
.map(line->Arrays.stream(line.split(“,”).map(Integer::valueOf).collector(Collectors.toList())
?谢谢您的回答。第二种可能性也在发挥作用@霍尔格:你认为这样做更有效还是更优雅?@NikNik如果有的话,差别会很小。还不够考虑。谢谢你的帮助。这并不是我想要的,因为我正试图从一个列表转换到另一个列表
    List<String> list = Files.lines(path)
            .map(line -> line.split(","))
            .flatMap(Arrays::stream)
            .collect(Collectors.toList())
           ;