我想将一个CSV文件收集到一个映射中,映射键是行(行[0](的第一个字符串,映射值是除行[0]之外的行其余部分的字符串数组。
.collect(Collectors.toMap(line->line[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);
}
或者使用这个:
.collect(Collectors
.toMap(line -> line[0], line-> Stream.of(line).skip(1).toArray(String[]::new)));
使用Arrays.copyOfRange
:
.collect(Collectors.toMap(line -> line[0], line->Arrays.copyOfRange(line, 1, line.length)));