Map或Hashtable的value排序

2,470 阅读

我们在文本操作时,经常要用到排序 以下是我写的一个供大家参考:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class WordSort {
	public static void main(String args[]) throws IOException{
		Map<string, integer=""> wordCount=new HashMap<string, integer="">();
		//需要排序的文本
		BufferedReader buufBufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream("D:\\钱洋个人\\学术中心\\数据处理\\user_content_count.txt"), "utf-8"));
		String line=null;
		while((line=buufBufferedReader.readLine())!=null){
			wordCount.put(line.split(" ")[0], Integer.valueOf(line.split(" ")[1]));
		}
		buufBufferedReader.close();
		System.out.println("当前总字符的数量:"+wordCount.size());
		//将出现次数为1的输出
		BufferedWriter Writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("D:\\钱洋个人\\学术中心\\数据处理\\wordcount_1.txt")),"utf-8"));
		for (Map.Entry<string, integer=""> j : wordCount.entrySet()) { 
			int value = j.getValue();
			if (value==1) {
				Writer.append(j.getKey()+"\r\n");
			}
        }
		Writer.close();
		//将map.entrySet()转换成list  
        List<map.entry<string, integer="">&gt; list = new ArrayList<map.entry<string, integer="">&gt;(wordCount.entrySet());  
        Collections.sort(list, new Comparator<map.entry<string, integer="">&gt;() {  
            //降序排序  
            public int compare(Entry<string, integer=""> o1, Entry<string, integer=""> o2) {  
                //return o1.getValue().compareTo(o2.getValue());  
                return o2.getValue().compareTo(o1.getValue());  
            }  
        });  
        //将排序后的值文本输出
        BufferedWriter Writer1 = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("D:\\钱洋个人\\学术中心\\数据处理\\wordcount_gaopinci.txt")),"utf-8"));
        for (int i = 0; i &lt; list.size()*0.01; i++) {
        	Writer1.append(list.get(i).getKey()+"\r\n");
		}
        Writer1.close();
        
	}
}

```</string,></string,></map.entry<string,></map.entry<string,></map.entry<string,></string,></string,></string,>

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码