解析getOrDefault()方法
介绍
getOrDefault(Object key, V defaultValue)
在操作Map集合时,判断是否存储着这个key。如果有返回对应的value值,若不存在,则返回自定义的默认值defaultValue值。
代码实现
LeetCode第387题:字符串中第一个唯一字符
public static void main(String[] args) {
String s = "loveleetcode";
System.out.println(firstUniqChar(s));
}
public static int firstUniqChar(String s) {
Map<Character, Integer> frequency = new HashMap<Character, Integer>();
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
// 当集合中这个key时,就使用这个value值,没有默认defaultValue
frequency.put(ch, frequency.getOrDefault(ch, 0) + 1); // 将前面的值放进去,按默认值+1计算,只有当出现重复的时候再按ch的value计算。
}
for (int i = 0; i < s.length(); ++i) {
if (frequency.get(s.charAt(i)) == 1) { // 返回指定的字符,将字符当作key进行返回
return i;
}
}
return -1; // 返回最末的值
}
完结