最代码官方
								2014-05-20 18:03:44
							
							
								原证
							java map按照value值来比较大小排序并且返回最终结果
package com.zuidaima.util;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class ValueComparator implements Comparator<Long> {
	Map<Long, Double> base;
	public ValueComparator(Map<Long, Double> base) {
		this.base = base;
	}
	public int compare(Long a, Long b) {
		if (base.get(a).doubleValue() >= base.get(b).doubleValue()) {
			return -1;
		} else {
			return 1;
		}
	}
	public static <K, V extends Comparable<V>> Map<K, V> sortByValues(
			final Map<K, V> map) {
		Comparator<K> valueComparator = new Comparator<K>() {
			public int compare(K k1, K k2) {
				int compare = map.get(k2).compareTo(map.get(k1));
				if (compare == 0)
					return 1;
				else
					return compare;
			}
		};
		Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);
		sortedByValues.putAll(map);
		return sortedByValues;
	}
	public static void main(String[] args) {
		HashMap<Long, Double> map = new HashMap<Long, Double>();
		map.put(1l, 99.5);
		map.put(2l, 67.2);
		map.put(3l, 67.5);
		map.put(4l, 67.6);
		ValueComparator bvc = new ValueComparator(map);
		TreeMap<Long, Double> sorted_map = new TreeMap<Long, Double>(bvc);
		System.out.println("unsorted map: " + map);
		sorted_map.putAll(map);
		System.out.println("results: " + sorted_map);
		Map<Long, Double> sorted_map2 = sortByValues(map);
		
		System.out.println("results2: " + sorted_map2);
	}
}
输出结果:
unsorted map: {1=99.5, 2=67.2, 3=67.5, 4=67.6}
results: {1=99.5, 4=67.6, 3=67.5, 2=67.2}
results2: {1=99.5, 4=67.6, 3=67.5, 2=67.2}
通过key比较大小的原理类似,大家改写下就好了。enjoy it。
猜你喜欢
请下载代码后再发表评论
     相关代码
相关代码
				 最近下载
最近下载
				 最近浏览
最近浏览
				
                浪里格朗     LV4
                2023年1月31日
            
            
        
                huaua7676     LV30
                2021年9月2日
            
            
        
                lllpppwww     LV5
                2020年3月25日
            
            
        
                弥尘123456     LV4
                2020年2月19日
            
            
        
                luohaipeng     LV23
                2019年11月19日
            
            
        
                aa493821228     LV4
                2019年5月30日
            
            
        
                Luis虎子     LV16
                2019年5月9日
            
            
        
                maiyatang520     LV1
                2019年4月25日
            
            
        
                daixiaowei     LV1
                2019年4月16日
            
            
        
                小周晴     LV6
                2019年1月24日
            
            
        



 
     
                 
                