【发布时间】:2018-02-22 18:13:18
【问题描述】:
我正在加载一个日志文件作为输入流,需要对每一行的匹配值进行聚合处理,我还需要在 MultiMap 中保存行时存储重复项,我发现收集以下存储到 List 中的流时遇到问题如Multimap<String, List<String>>
try (Stream<String> stream = Files.lines(Paths.get(inFileName))) {
List<String> matchedValues = stream
.flatMap(s -> MultiPatternSpliterator.matches(s, p1))
.map(r -> r.group(1))
.collect(Collectors.toList());
matchedValues.forEach(System.out::println);
}
如何转换相同的值以将值存储在具有重复值的 Map 中。
【问题讨论】:
-
您希望第 1 组作为键,所有组作为值吗?
-
是的,模式匹配并从日志行获取值作为
,我需要存储 Map, 中的值) - TimeStamp 是键也是 List . -
您不想要
Multimap<String, String>还是List<String, List<String>>?我不明白为什么每个键需要多个 List。 -
在我的地图中,我需要存储 3 个值,其中 1 个值也是 Key,有关我上述评论的更多信息。
-
是否 Map
>> 也可以工作,那么您可以只使用标准 Java(外部列表在同一时间戳提供多个事件)
标签: functional-programming java-8 guava multimap collectors