一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
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()); } }); } }
相关文章推荐
- 机器学习之K近邻算法(KNN)
- xcode非app store安装方法
- 异步(ajax)配合一般处理程序 验证用户名
- JSP脚本中的9个内置对象
- LSD-SLAM深入学习(2)-算法解析
- PHP 7 vs HHVM 比较
- 每天一个linux命令(20):find命令之exec
- Html 语法学习笔记三
- 模板 读入挂
- 【Little_things】控制台五子棋(java)
- 修改MySQL数据库Root密码
- 有人认为“中文编码”是解决中国程序员编程效率的秘密武器,那么它是否是一个“银弹”?
- IDF 牛刀小试- 摩斯密码
- effective c++ 在资源管理类中小心copying 行为
- 第三十三篇:私人通迅录(有存储功能)
- 漂亮的二维透视码
- VC++ 控制外部程序,向外部程序发送一个消息的方法
- servlet生命周期,工作原理,以及
- 灰度图像的自动阈值分割(Otsu 法)
- 灰度图像的自动阈值分割(Otsu 法)