【发布时间】:2015-04-30 13:14:59
【问题描述】:
我有什么:我有一个文件可以逐行读取。这些行不计入文件中。
我想做的事:我想计算 ONE 流中的每一行,并只返回特定文本出现的数字。
我目前所拥有的:
public static Integer findLineNums(String word)
throws IOException {
final Map<String, Integer> map = new HashMap<>();
final List<String> lines = Files.lines(Paths.get(PATH)).collect(Collectors.toList());
IntStream.rangeClosed(0, lines.size()-1).forEach(f -> map.put(lines.get(f), f+1));
return map.get(word);
}
问题:我怎样才能只使用一个单一的流来做到这一点?
编辑的问题:我想在 Stream 中做所有事情,这也包括累积到一个列表中。
最好的情况是这样的:
Files.lines(Paths.get(PATH)).superAwesomeStreamFuncs().collect(Collectors.toList());
编辑:在我的情况下,我只会返回一个整数,但我想得到一个整数列表之类的东西。
【问题讨论】: