1.求Map<K,V>中Value(值)降序排序
/**
* 求Map<K,V>中Value(值)降序排序
*
* @param map
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValueDescending(Map<K, V> map)
{
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
int compare = (o1.getValue()).compareTo(o2.getValue());
return -compare;
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
2.求Map<K,V>中Value(值)升序排序
/**
* 求Map<K,V>中Value(值)升序排序
*
* @param map
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValueAscending(Map<K, V> map)
{
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
int compare = (o1.getValue()).compareTo(o2.getValue());
return compare;
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
3.求Map<K,V>中Value(值)的最小值
/**
* 求Map<K,V>中Value(值)的最小值
*
* @param map
*/
public static Object getMinValue(Map<String , Double> map) {
if (map == null) return null;
Collection<Double> c = map.values();
Object[] obj = c.toArray();
Arrays.sort(obj);
return obj[0];
}
4. 求Map<K,V>中Key(键)的最小值
/**
* 求Map<K,V>中Key(键)的最小值
* @param map
* @return
*/
public static Object getMinKey(Map<Integer, Integer> map) {
if (map == null) return null;
Set<Integer> set = map.keySet();
Object[] obj = set.toArray();
Arrays.sort(obj);
return obj[0];
}