JAVA问题:谁能写得出

这是道面试题:怎么写啊?
有数组[5,0,-5,2,-4,5,10,3,-5,2,-4,3,4,9,1] ,请写代码输出每个数的频率数(正负数算一个数),如下面结果: 5出现4次 0出现1次

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Testa {

public static void main(String[] args) {

int[] ary ={5,0,-5,2,-4,5,10,3,-5,2,-4,3,4,9,1};

Map<Integer,Integer> map = new HashMap<Integer, Integer>();

for(int i = 0;i < ary.length; i++){
Integer key = Integer.valueOf(Math.abs(ary[i]));
if(map.containsKey(key)){
map.put(key, Integer.valueOf(map.get(key).intValue() + 1));
}else{
map.put(key, new Integer(1));
}
}

Set<Integer> keySet = map.keySet();

for (Iterator<Integer> iterator = keySet.iterator(); iterator.hasNext();) {
Integer key = (Integer) iterator.next();
System.out.println(key.intValue() + "出现" + map.get(key).intValue() + "次");

}

}

}

-----------测试
0出现1次
1出现1次
2出现2次
3出现2次
4出现3次
5出现4次
9出现1次
10出现1次
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-09
太复杂了吧
相似回答