正在处理要映射的CSV文件<;字符串,字符串[]>;使用Java8

正在处理要映射的CSV文件<;字符串,字符串[]>;使用Java8,java,csv,java-8,stream,reader,Java,Csv,Java 8,Stream,Reader,我想将一个CSV文件收集到一个映射中,映射键是行的第一个字符串(第[0]行),映射值是除第[0]行之外的其他行的字符串数组 .collect(Collectors.toMap(行->行[0],) 不确定输入什么作为.toMap方法的第二个参数以实现此目的 public Map<String,String[]> readFile() { try { Path path = Paths.get("src/CSV/map.csv");

我想将一个CSV文件收集到一个映射中,映射键是行的第一个字符串(第[0]行),映射值是除第[0]行之外的其他行的字符串数组

.collect(Collectors.toMap(行->行[0],)

不确定输入什么作为.toMap方法的第二个参数以实现此目的

public Map<String,String[]> readFile() {

        try {
            Path path = Paths.get("src/CSV/map.csv");
            BufferedReader reader = new BufferedReader(Files.newBufferedReader(path, Charset.forName("UTF-8")));
            return reader.lines()
                    .map(line -> line.split(","))
                    .collect(Collectors.toMap(line ->line[0], ));
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }

publicmap readFile(){
试一试{
Path Path=Path.get(“src/CSV/map.CSV”);
BufferedReader=new BufferedReader(Files.newBufferedReader(path,Charset.forName(“UTF-8”));
返回reader.lines()
.map(直线->直线分割(“,”)
.collect(Collectors.toMap(行->行[0],);
}捕获(IOE异常){
抛出新的未选中异常(e);
}

使用
数组。copyOfRange

.collect(Collectors.toMap(line -> line[0], line->Arrays.copyOfRange(line, 1, line.length)));

使用
数组。copyOfRange

.collect(Collectors.toMap(line -> line[0], line->Arrays.copyOfRange(line, 1, line.length)));
或者使用以下命令:

.collect(Collectors
   .toMap(line -> line[0], line-> Stream.of(line).skip(1).toArray(String[]::new)));
或者使用以下命令:

.collect(Collectors
   .toMap(line -> line[0], line-> Stream.of(line).skip(1).toArray(String[]::new)));

如果您打算使用流,那么在IMO-->
Arrays.stream(line,1,line.length)。toArray(String[]::new)
感谢您的建议,以前没有在流中遇到流如果您打算使用流,那么在IMO-->
Arrays.stream(line,1,line.length)。toArray(String[]::new)
感谢您的建议,以前没有在流中遇到流