【发布时间】:2020-07-13 15:34:56
【问题描述】:
以下是一个使用 Map 计算字符串中字母出现次数的 java 程序:
String str = "babbaceeeeee";
Map<String,Integer> letterCountMap = new HashMap<>();
for(int count =0; count<str.length(); count++){
String letter = str.substring(count, count +1);
if(letterCountMap.containsKey(letter)){
int presentCount = letterCountMap.get(letter);
letterCountMap.put(letter, presentCount + 1);
}else{
letterCountMap.put(letter, 1);
}
}
System.out.println("letterCountMap ::"+letterCountMap);//prints letterCountMap ::{a=2, b=3, c=1, e=6}
有没有办法在不使用 containsKey() if 条件的情况下使用 Java8 中引入的 Map 方法组合(如 compute()、computeIfPresent()、computeIfAbsent() 等)有效地替换这段代码??
【问题讨论】: