程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java map按照value值來比較大小並且返回最終結果

java map按照value值來比較大小並且返回最終結果

編輯:關於JAVA
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。

原文:http://www.zuidaima.com/share/1830834176347136.htm

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved