当前位置:
首页 >
打印出重复的姓名和重复的次数,并按重复次数排序:
发布时间:2024/2/28
69
豆豆
生活随笔
收集整理的这篇文章主要介绍了
打印出重复的姓名和重复的次数,并按重复次数排序:
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
读取文件内容,
打印出重复的姓名和重复的次数,并按重复次数排序:package com;import java.io.*; import java.util.*;/* 打印出重复的姓名和重复的次数,并按重复次数排序:*/ public class Demo05 {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new FileReader("d:/co.txt"));List<String> list = new ArrayList<>();String str = "";//将读取的名字添加到list中while ((str = br.readLine()) != null){list.add(str);}//定义map存储名字和个数。Map<String,Integer> hMap = new HashMap<>();for (String s:list) {//取名字String[] mid = s.split(","); // System.out.println(mid[1]);if (hMap.get(mid[1]) == null){hMap.put(mid[1],1);}else{hMap.put(mid[1],hMap.get(mid[1]) + 1);}} // System.out.println(hMap);List<Integer> times = new ArrayList<>();//遍历mapSet<Map.Entry<String,Integer>> eSet = hMap.entrySet();//将map的value值取出存储到times集合中for (Map.Entry<String,Integer> e : eSet) {System.out.println(e);Integer value = e.getValue();times.add(value);}//对序号进行排序Collections.sort(times);System.out.println(times);//遍历序号for (Integer i : times) {for (Map.Entry<String,Integer> e : eSet) {//如果序号和map中的value一致则输出,但需注意重复,输出后,清除这个元素,并break跳出循环//避免后面循环中的重复数据if (i == e.getValue()){System.out.println(e.getKey() + e.getValue());//查出一个后删除,并退出,为了避免重复输出eSet.remove(e);break;}}}//关闭流br.close();} }
总结
以上是生活随笔为你收集整理的打印出重复的姓名和重复的次数,并按重复次数排序:的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 截取字符串,但要保证汉字不被截取半个
- 下一篇: 一个整数按照n,2n,4n,8n的顺序递