package FileRead;import javax.persistence.criteria.CriteriaBuilder;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.*;class name{ String name=new String(); int num=0;}public class FileRead { public static void main(String[] args) { try { FileInputStream fs=new FileInputStream("E:\\1.txt"); Scanner sc= new Scanner(fs); int num=0; HashMap<String,Integer> ts=new HashMap<String, Integer>(); LinkedList<name> list =new LinkedList<name>(); while (sc.hasNext()){ String s=sc.next(); if(ts.containsKey(s)){ Integer i=ts.get(s)+1; ts.put(s,i); } else { ts.put(s,1); } num++; } System.out.println("开始排序....."); int i=0; int [] nums=new int[num]; Set<String> keys=ts.keySet(); for(String key:keys){ nums[i]=ts.get(key); name n1=new name(); n1.num=nums[i]; n1.name=key; list.add(n1); } Collections.sort(list, new Comparator<name>() { @Override public int compare(name o1, name o2) { if(o1.num<o2.num){ return 1; } else if(o1.num==o2.num){ return 0; } return -1; } }); for(name n1:list){ System.out.println(n1.num+":"+n1.name); } } catch (FileNotFoundException e) { e.printStackTrace(); } }}
整体思想就是先把文件中的数据全部读出来后,存入一个map中。然后对已经存在的他的出现次数+1,然后接着put进去map中。 最后创建一个链表,里面存储name对象。然后对list进行排序,根据Collections.sort(list,new Coparator<name>(){
public int compare(name n1,name n2){
if(n1.num<n2.num){
return 1;
}else(n1.num==n2.num){
return 0;
}
return -1;
}
})
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)