gpt4 book ai didi

java - 如何将此Java代码转换为Lambda和Stream实现?

转载 作者:行者123 更新时间:2023-12-01 14:07:53 25 4
gpt4 key购买 nike

我有一个实现来查找字符串中的重复字符:

Map<Character, Integer> charMap = new HashMap<>();
for (int i = 0; i < word.length(); i++) {
Character ch = word.charAt(i);
if (charMap.containsKey(ch)) {
charMap.put(ch, charMap.get(ch) + 1);
} else {
charMap.put(ch, 1);
}
}

我想知道是否可以将此实现转换为 Java 8Stream 实现。要做这样的事情:

Map<Character, Integer> charMap = new HashMap<>();

然后将String word 转换为List 字符:

List<Character> chars = word.chars()
.mapToObj(i -> (char) i)
.collect(Collectors.toList());

现在要做类似的事情:

chars.stream()
.filter(e -> charMap.containsKey(e))...

最佳答案

这里不需要流。写一个for循环就可以了。这是它的样子。

Map<Character, Integer> chCntMap = new HashMap<>();
for (char ch : word.toCharArray())
chCntMap.merge(ch, 1, Integer::sum);

关于java - 如何将此Java代码转换为Lambda和Stream实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61935619/

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