Map.getOrDefault(Object key, V defaultValue);
如果在Map中存在key,则返回key所对应的的value。
如果在Map中不存在key,则返回默认值。
例如:
map.put(num, map.getOrDefault(num, 0) + 1);
表示:
value默认从1开始,每次操作后num对应的value值加1
可以用来统计数字出现的次数!
实例:
剑指 Offer 56 - II. 数组中数字出现的次数 II
在一个数组 nums
中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1: 输入:nums = [3,4,3,3] 输出:4
class Solution {
public int singleNumber(int[] nums) {
Map<Integer,Integer> map = new HashMap<>();
//将其存入哈希表中,含义为,若该元素不存在则存入表中,并计数为1,若已经存在获取次数并加1.
for(int x:nums){
map.put(x,map.getOrDefault(x,0)+1);
}
//遍历出出现次数为1的情况
for(int y:map.keySet()){
if(map.get(y) == 1){
return y;
}
}
return 0;
}
}