gpt4 book ai didi

java - 将集合转换为带有计数的字符串映射

转载 作者:行者123 更新时间:2023-12-01 07:48:19 26 4
gpt4 key购买 nike

我的原始数据是字符串流,例如

correctname
abc,def,ghi,jol
abc
def,ghi
zzzzzzzzzz
myname
pppppppppp
jkl

转换设置:

{correct}
{abc, def,ghi,jkl}
{abc}
{def,ghi}
{invalid}
{correct}
{invalid}
{jkl}

我有一些 Stream.map(…),它返回我上面的结果

Map<String,Long> answer = Stream.map(...).collect(groupingby??)

现在我想收集它(收集或 map 或分组)并将结果作为 map 返回,这样我的答案应该是

map >{正确:2无效:2其他:8}

最佳答案

这里的技巧是将 flatMap 每个设置为其中的字符串。完成此操作后,您可以使用 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()));

关于java - 将集合转换为带有计数的字符串映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com