gpt4 book ai didi

Java8 流和过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:00 26 4
gpt4 key购买 nike

我有一个 set multimap,它存储一些针对月份(整数)的字符串。

MonthlyCount = {1:["hello"],2:["hello","hi"]}   

我有一个 map ,可以计算每个月的字符串数量并添加它们。我使用 containsKey 过滤器来检查集合中是否存在键,并将它们添加到映射中。

final String[] months = new DateFormatSymbols().getShortMonths();
final Map<String, Object> metaData = new LinkedHashMap<>();
private SetMultimap<Integer, String> MonthlyCount;

for (int i = 0; i <= month; i++) {
final int count = MonthlyCount.containsKey(i + 1) ? MonthlyCount.get(i + 1).size() : 0;
metaData.put(months[i], count);
}

有没有办法用 Java8 的流和过滤器实现相同的行为?

最佳答案

您可以使用 IntStream 遍历所需的范围并使用 Collectors.toMap 生成所需的 map :

Map<String,Integer> map =
IntStream.range(0,months.length)
.boxed()
.collect(Collectors.toMap(i->months[i],
i->MonthlyCount.containsKey(i + 1) ? MonthlyCount.get(i + 1).size() : 0));

关于Java8 流和过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35862368/

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