java实现打印list中重复次数最多的前n个数据
2017-04-07 14:00
423 查看
如:list中有1,3,4,5,1,7,5,3,4,2,1,5,1……
当输入输入参数n为1时,打印1;当输入参数n为2时,打印1,5
当输入输入参数n为1时,打印1;当输入参数n为2时,打印1,5
public void printTopN(List<Integer> numbers,int n){ //先统计各个数据出现的次数 Map<Integer,Integer> countMap = new HashMap<Integer,Integer>(); for(int i = 0;i < numbers.size();i++){ int num = numbers.get(i); if(countMap.constainsKey(num)){ countMap.put(num,countMap.get(num) + 1); }else{ countMap.put(num,1); } } //将统计出来的map进行处理 Map<Integer,List<Integer>> resultMap = new HashMap<Integer,List<Integer>>(); List<Integer> tempList = new ArrayList<Integer>(); //用于记录出现次数 for(Entry entry: countMap.setEntry()){ int key = entry.getKey(); int value = entry.getValue(); if(resultMap.constainsKey(value){ List list = (List)resultMap.get(value); list.add(key); }else{ List<Ineteger> list = new ArrayList<Integer>(); list.add(key); resultMap.put(value,list); tempList.add(value); } } //对出现次数进行排序 ArrayList.sort(tempList); //输出结果(可能会输出多于n个),如果要只输出n个的话,使用下边方法 int p = 0; //记录打印次数 for(int i = tempList.size()-1; i >= 0 && p < n; i--) { List list = resultMap.get(templist.get(i)); for(int j = 0; j < list.size(); j++) { System.out.print(list.get(j) + ","); p++; } } //只输出n个 for(int i = tempList.size()-1; i >= 0; i--) { List list = resultMap.get(templist.get(i)); for(int j = 0; j < list.size() && p < n; j++) { System.out.print(list.get(j) + ","); p++; } } }
相关文章推荐
- JAVA找出List集合中重复次数最多的数据和次数
- java实现查找数组中重复次数最多的字符串
- List集合筛选数据去掉重复,含有数据重复次数(JAVAAndroid)
- 上千万或上亿数据(有重复),统计其中出现次数最多的N个数据. C++实现
- Java实现找出数组中重复次数最多的元素以及个数
- java面试--(生成随机数,获取重复次数最多,并且数是最大的一个,打印出来)
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- java中去除List集合中重复数据的方法
- 找出数组中重复次数最多的元素并打印
- 一个将数据文件转换成excel文件打印的java实现方法的代码片断(Struts+poi)
- 海量日志数据提取出访问次数最多的那个IP python实现 总结
- java中list数据拆分为sublist实现分页的简单代码
- Java实现list清除重复的字符串
- java实现list清除重复的字符串;arraylist动态数组;角谷定理最终得1,找出10000以内哪个数字的步骤最长
- JavaWeb开发中Ajax技术、json与java实现List、Map数据直接传递的研究
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- java list 去除重复数据
- 练手系列(1) 找出数组中重复次数最多的元素并打印