java HashMap 按值排序

來源:互聯網
上載者:User

/**
* 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;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.