您的位置:首页 > 其它

一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出

2015-10-24 20:10 1056 查看
第一次写好激动!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

有更好的方法请留下您宝贵的意见,谢谢啦

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;

public class cs {
public static void main(String args[]){
Scanner in=new Scanner(System.in);
int length=in.nextInt();
int[] array = new int[length];
for(int i=0;i<array.length;i++){
array[i]=in.nextInt();
}
Arrays.sort(array);
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i:array){
Integer a=map.get(i);
if(a==null){
map.put(i, 1);
}
else map.put(i,a+1);
}
sortByValue(map);
Iterator<Entry<Integer, Integer>> it=map.entrySet().iterator();
while(it.hasNext()){
Entry<Integer, Integer> entry=it.next();
System.out.println(entry.getKey()+"出现"+entry.getValue()+"次");
}
}
public static void sortByValue(Map map){
List<Map.Entry<Integer, Integer>> infoIds=new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(infoIds,new Comparator<Map.Entry<Integer, Integer>>(){
public int compare(Map.Entry<Integer, Integer> o1,Map.Entry<Integer, Integer> o2){
return (o1.getValue()-o2.getValue());
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: