JAVAのソートプログラムについて
List1.txtの内容の単語の数を数え、その数を単語の隣に表示するプログラムを作りました。
(1)List1.txtの内容
ゲーム
ゲーム
麻雀
麻雀
野球
ゲーム
(2)実行結果
C:\>java Lists
ゲーム 3
野球 1
麻雀 2
(3)プログラム
import java.io.BufferedWriter;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.TreeMap;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.*;
public class Lists {
public static void main(String[] args) throws IOException{
File file3 = new File("C:\\List1.txt");
BufferedReader br3 = new BufferedReader(new FileReader(file3));
FileWriter filewriter3 = new FileWriter(file3,true);
TreeMap<String,Integer> tm = new TreeMap<String,Integer>();
String line;
while((line = br3.readLine()) != null){
String[] words = line.split("\\s");
for(String s : words){
if(!tm.containsKey(s)){
tm.put(s,1);
}else{
tm.put(s,tm.get(s).intValue()+1);
}} }
for(String s : tm.keySet()){
System.out.println(s + " " + tm.get(s) );
}}}
このプログラムを上から単語の数が多い順に表示したいのですがどこをどう修正したらいいのか悩んでます。
C:\>java Lists
ゲーム 3
麻雀 2
野球 1
と表示されればOKです。
よろしくお願いします。