我有一个实现可以在中找到重复的字符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 8
and Stream
实现。做这样的事情:
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))...
您可以使用此:
Map<Character, Integer> charMap = new HashMap<>();
String word = "acbczabcd";
word.chars().forEach(ch -> charMap.put((char) ch, charMap.getOrDefault((char) ch, 0) + 1));
,带有 mapToObj
word.chars().mapToObj(n -> (char) n).forEach(ch -> charMap.put(ch, charMap.getOrDefault(ch, 0) + 1));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句