hashMap按照value進行排序


package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

public class Sort {
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		Map<String, Double> map = new HashMap<String, Double>();
		map.put("d", 2.0);
		map.put("c", 1.0);
		map.put("b", 1.0);
		map.put("a", 3.0);
		
		ArrayList<Entry<String,Double>> list = new ArrayList<Entry<String,Double>>();
		list.addAll(map.entrySet());
		Collections.sort(list, new Comparator<Object>(){
			public int compare(Object e1, Object e2){
				double d1 = Double.parseDouble(((Entry<String,Double>)e1).getValue().toString());
				double d2 = Double.parseDouble(((Entry<String,Double>)e2).getValue().toString());
//				if(d1 > d2) {	// 升序
				if(d1 < d2) {	// 降序
					return 1;
				} else if(d1 == d2) {
					return 0;
				} else {
					return -1;
				}
			}
		});
		
		for(Iterator<Map.Entry<String, Double>> ite = list.iterator(); ite.hasNext();) {
			Map.Entry<String, Double> m = ite.next();
			System.out.println("key-value: " + m.getKey() + "," + m.getValue());
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章