2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 打印出重复的姓名和重复的次数 并按重复次数排序:

打印出重复的姓名和重复的次数 并按重复次数排序:

时间:2024-04-10 06:43:02

相关推荐

打印出重复的姓名和重复的次数 并按重复次数排序:

读取文件内容,

打印出重复的姓名和重复的次数,并按重复次数排序:

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();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。