以下函数使用 HashMap 返回数组中数字的频率。在这个函数中有一行:-
Set<Integer> set= map.keySet();
上面的行是如何工作的。我知道 Set 是一个接口,并且有许多实现类,如 HashSet、TreeSet 等。但是什么map.keySet()
返回set
变量?此外,当我们编写Set<Integer> set= new HashSet();
如何使用 set 变量HashSet
作为set
接口变量进行访问时?
public static int[] GetFrequency(int [] array){
HashMap<Integer ,Integer > map = new HashMap<Integer,Integer>();
for(int i =0;i<array.length;i++){
if(map.get(array[i])==null) map.put(array[i],1);
else{
int k = map.get(array[i]);
map.put(array[i],k+1);
}
}
int a[] = new int[map.size()];
Set<Integer> set= map.keySet();
int i =0;
for(int s : set)
a[i++]=map.get(s);
return a;
}