以下函数使用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