我是Java 8Streams和Collectors类的新手 。我正在读取一个文件,其内容需要保存在一个LinkedHashMap<Integer, String>位置,该<keys>位置是文件的行号,并且它<values>是每一行的内容。在这里,我想使用这个Stream概念,但是我不能使用Collectors.toMap来自动增加<keys>需要保存在LinnkedHashMap对象中的。取而代之的是,我得到了例外。以下是我正在尝试的代码:List<String> list = new ArrayList<>();Integer count = 0;try (BufferedReader br = Files.newBufferedReader( Paths.get( fileName ) )) { // br returns as stream and convert it into a List list = br.lines().collect( Collectors.toList() );}catch ( IOException e ) { e.printStackTrace();}list.forEach( System.out::println );Map<Integer, String> fileNumWithContentMapper = list.stream() .collect( Collectors.toMap( n->n+1,s1->s1));
3 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
试试这个代码:
public static void main(String[] args) {
List<String> list = Arrays.asList("A", "B", "C");
list.forEach( System.out::println );
AtomicInteger i = new AtomicInteger(0);
Map<Integer, String> fileNumWithContentMapper = list.stream()
.collect( Collectors.toMap( n->i.incrementAndGet(),s1->s1));
System.out.println(fileNumWithContentMapper);
}
添加回答
举报
0/150
提交
取消