1. 程式人生 > >map根據其value值進行排序

map根據其value值進行排序

/**
 * 根據value對map進行排序
 */
public Map sortAllMapByValue(Map map) {
	// 這裡將map.entrySet()轉換成list
	List> list = new ArrayList>(map.entrySet());
	// 然後通過比較器來實現排序
	Collections.sort(list,new Comparator>() {
		// 降序排序
		public int compare(Entry o1, Entry o2) {
			return o2.getValue().compareTo(o1.getValue());
		}
	});
	
	// 存入新的map返回
	Map newMap = new LinkedHashMap();
	Iterator> iter = list.iterator();
	Map.Entry tmpEntry = null;
	int count = 0;
	while (iter.hasNext()) {
		tmpEntry = iter.next();
		count++;
		if (count > 100) { // 最多存入100個關鍵詞
			iter.remove();
		} else {
			newMap.put(tmpEntry.getKey(), tmpEntry.getValue());
		}
	}
	return newMap;
}