Java 将集合转换为带计数的字符串的映射
我的原始数据是字符串流Java 将集合转换为带计数的字符串的映射,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我的原始数据是字符串流 correctname abc,def,ghi,jol abc def,ghi zzzzzzzzzz myname pppppppppp jkl 转换it集: {correct} {abc, def,ghi,jkl} {abc} {def,ghi} {invalid} {correct} {invalid} {jkl} 我有一些Stream.map(…)返回我上面的结果 Map-answer=Stream.Map(…).collect(groupingby??) 现在
correctname
abc,def,ghi,jol
abc
def,ghi
zzzzzzzzzz
myname
pppppppppp
jkl
转换it集:
{correct}
{abc, def,ghi,jkl}
{abc}
{def,ghi}
{invalid}
{correct}
{invalid}
{jkl}
我有一些Stream.map(…)返回我上面的结果
Map-answer=Stream.Map(…).collect(groupingby??)
现在我想收集它(collect或map或groupingby),并将结果作为map返回,这样我的答案应该是
地图>
{正确:2
无效:2
其他:8}这里的技巧是将每个集合映射到其中的字符串。完成此操作后,可以使用
map
将值转换为感兴趣的值并对其进行计数。例如:
Set<String> allowed = new HashSet<>(Arrays.asList("correct", "invalid"));
Map<String, Long> result =
values.flatMap(Set::stream)
.map(s -> allowed.contains(s) ? s : "other")
.collect(Collectors.groupingBy(Function.identity(),
Collectors.counting()));
Set allowed=新的HashSet(Arrays.asList(“correct”、“invalid”);
映射结果=
values.flatMap(Set::stream)
.map->allowed.contains?s:“其他”)
.collect(收集器.groupingBy(Function.identity()),
收集器。计数();
这里的技巧是将每个集合映射到其中的字符串。完成此操作后,可以使用map
将值转换为感兴趣的值并对其进行计数。例如:
Set<String> allowed = new HashSet<>(Arrays.asList("correct", "invalid"));
Map<String, Long> result =
values.flatMap(Set::stream)
.map(s -> allowed.contains(s) ? s : "other")
.collect(Collectors.groupingBy(Function.identity(),
Collectors.counting()));
Set allowed=新的HashSet(Arrays.asList(“correct”、“invalid”);
映射结果=
values.flatMap(Set::stream)
.map->allowed.contains?s:“其他”)
.collect(收集器.groupingBy(Function.identity()),
收集器。计数();
听起来你在找这个:
Map<String, Long> answer = sets.stream()
.flatMap(Set::stream)
.collect(Collectors.groupingBy(
s -> s.matches("invalid|correct") ? s : "others",
Collectors.counting()));
Map-answer=sets.stream()
.flatMap(集合::流)
.collect(收集器.groupingBy(
s->s.matches(“无效|正确”)?s:“其他”,
收集器。计数();
听起来你在找这个:
Map<String, Long> answer = sets.stream()
.flatMap(Set::stream)
.collect(Collectors.groupingBy(
s -> s.matches("invalid|correct") ? s : "others",
Collectors.counting()));
Map-answer=sets.stream()
.flatMap(集合::流)
.collect(收集器.groupingBy(
s->s.matches(“无效|正确”)?s:“其他”,
收集器。计数();
我很困惑。Long
代表什么?你如何将你的集合映射到Map
?我很困惑。Long
代表什么?如何将集合映射到Map
?