/**
* sort public static <T> void sort(T[] a, Comparator<? super T> c)
* 根據指定比較子產生的順序對指定對象數組進行排序。 數組中的所有元素都必須是通過指定比較子可相互比較的 (也就是說,對於數組中的任何 e1 和 e2
* 元素而言,c.compare(e1, e2) 不得拋出 ClassCastException)。 保證此排序是穩定的:不會因調用 sort
* 方法而對相等的元素進行重新排序。 該排序演算法是一個經過修改的合并排序演算法
* (其中,如果低子列表中的最高元素小於高子列表中的最低元素,則忽略合并)。 此演算法提供可保證的 n*log(n)效能。 參數: a -
* 要排序的數組 c - 確定數組順序的比較子。 null 值指示應該使用元素的自然順序。 拋出: ClassCastException -
* 如果數組包含使用指定的比較子不可相互比較的 的元素。
*
* @param h
* @return 實現對map按照value升序排序
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static Map.Entry[] getSortedHashtableByValue(Map h) {
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set
.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Long key1 = Long.valueOf(((Map.Entry) arg0).getValue()
.toString());
Long key2 = Long.valueOf(((Map.Entry) arg1).getValue()
.toString());
// 升序
// return key1.compareTo(key2);
// 降序
return key2.compareTo(key1);
}
});
return entries;
}