以下函數使用HashMap返回數組中數字的頻率。在此功能中有一行: -設置接口Java
Set<Integer> set= map.keySet();
上述行如何工作。我知道Set是一個接口,並且有許多實現類,如HashSet,TreeSet等。但是map.keySet()
返回set
變量?當我們寫Set<Integer> set= new HashSet();
如何設置變量可以用來訪問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;
}
聽說過稱爲多態性?去谷歌上查詢! –
它被稱爲多態性。 – Azad