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

问题描述 投票:0回答:1

我有一个实现可以在String中查找重复的字符:

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))...

但是我发现我无法在charMap处访问,并且我在这里被屏蔽。

谢谢!

java lambda stream java-stream
1个回答
0
投票

您可以使用此:

© www.soinside.com 2019 - 2024. All rights reserved.