常规解法
public boolean uniqueOccurrences(int[] arr) {
Map<Integer,Integer> map = new HashMap<>();
for(int element:arr){
map.put(element,map.getOrDefault(element,0)+1);
}
Set<Integer> set = new HashSet<>();
for(int value:map.values()){
set.add(value);
}
return set.size()==map.keySet().size();
}
使用Lambda表达式与流式计算
public boolean uniqueOccurrences(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
for(int i : arr)
map.merge(i, 1, Integer::sum);
int i1 = map.values().stream().distinct().mapToInt(i -> i).sum();
int i2 = map.values().stream().mapToInt(i -> i).sum();
return i1 == i2;
}