我有一个关于lambda表达式的问题.我有一个类Pair,它应该包含一个String和一个int.
Pair从文件中获取String.
并且int表示行号.
到目前为止我有这个:
Stream lineNumbers = Files.lines(Paths.get(fileName));
List posStream = Stream.iterate(0, x -> x + 1).limit(lineNumbers.count()).collect(Collectors.toList());
lineNumbers.close();
Stream line = Files.lines(Paths.get(fileName));
List pairs = line.map((f) -> new Pair<>(f,1))
.collect(Collectors.toList());
pairs.forEach(f -> System.out.println(f.toString()));
line.close();
我现在如何输入文件编号?
是否有lambda表达式可以执行此操作?或者我还需要其他东西吗?
解决方法:
有几种方法可以做到这一点. Saloparenator’s answer建议的计数器技术可以如下实现,使用AtomicInteger作为可变计数器对象并假设明显的Pair类:
List getPairs1() throws IOException {
AtomicInteger counter = new AtomicInteger(0);
try (Stream lines = Files.line