打印出重复的姓名和重复的次数,并按重复次数排序:
生活随笔
收集整理的這篇文章主要介紹了
打印出重复的姓名和重复的次数,并按重复次数排序:
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讀取文件內容,
打印出重復的姓名和重復的次數,并按重復次數排序:?
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的顺序递