1. 程式人生 > >Map中按value值排序

Map中按value值排序

大家都知道,在java中的集合Map中按鍵值key排序比較簡單,只需引用集合TreeMap即可,可是怎樣實現按value值排序呢?下面我們來測試一下:

public class TestHashMap {
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("zhangsan", 1);
		map.put("lisi", 2);
		map.put("wangwu", 0);
		
		List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
		Collections.sort(list, new Comparator<Map.Entry<String,Integer>>() {

			public int compare(Map.Entry<String,Integer> o1, Map.Entry<String,Integer> o2) {
				Integer one = o1.getValue();
				Integer two = o2.getValue();
				return two.compareTo(one);
			}
			
		});
		
		for(Map.Entry<String,Integer> entry : list)
			System.out.println(entry.getKey()+":"+entry.getValue());
	}
}

輸出結果為:

lisi:2
zhangsan:1
wangwu:0

結果即是以value值從大到小進行排序的!

相關推薦

Mapvalue排序

大家都知道,在java中的集合Map中按鍵值key排序比較簡單,只需引用集合TreeMap即可,可是怎樣實現按value值排序呢?下面我們來測試一下: public class TestHashMap { public static void main(String[]

c++mapvalue排序

int cmp(const pair<string, int>& x, const pair<string, int>& y)   //定義sort排序方式 {     return x.second > y.second;}

c++ mapvalue排序

map預設是按key值從小到大排序的,先改為按value排序。 基本思路就是:想直接用sort排序是做不到的,sort只支援陣列、vetctor等的排序,所以我們可以先把map裝進pair裡,然後再放

如何對mapvalue進行排序

package com.demo.map; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap

C++ map容器 按照value排序

正常的map預設按照key值排序,而map又沒有像vector一樣的sort()函式,那麼如果將map按照value值排序呢,方法如下 方法. 將map中的key和value分別存放在一個pair

python 實現txt檔案 value排序從高到低

with open('sort.txt','w+') as w:      while True:           sorted_lines=sorted(open('1.txt'), key=lambda s: s.split()[4],reverse=1)      

JAVAMapvalue進行逆序排序

RT。程式碼如下。 //按照頻率的逆序進行排序 Set set=map.entrySet(); Map.Entry[] entries=(Map.Entry[

JAVA——對MAP容器的Value、key進行排序

  今天在搞JAVA容器類題目的時候,碰到了一道對MAP容器的Value值排序的問題,額。。。當時無從下手,然後慌得一批,兩天沒看就將學的JAVA容器忘得一乾二淨,在這裡做一下詳細的學習和整理,ORZMAP部落格大佬。 首先在這裡進行理論儲備,對MAP容器有一個大致的瞭解:

PHP關聯陣列某一value排序

1.定義 二維陣列根據某個欄位排序有兩種辦法,一種是通過sort自己寫程式碼,一種是直接用array_multisort排序函式,這裡直接說使用array_multisortd的方式。 2.eg: // a. 構造測試資料 $roledata = array( array("name"=&g

Map根據value排序

Map的key是機場名字,value 是流量。根據流量倒序排序 /** * 使用 Map按value進行排序 * @param map * @return */ public static Map<String, Integer>

java8 實現mapvalue排序

import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.stream.Collector; import java.util.stream.C

【java】各種MapkeySet()返回排序問題

上回說到,由於對資料進行處理的時候是按照亂序一行一行的處理,導致並行執行緒各自佔據了一部分資料,誰也不肯釋放,從而發生死鎖。 為什麼會亂序,是因為取得資料行主鍵的時候,使用了HashMap.keySet()方法,而這個方法返回的Set結果,裡面的資料是亂序排放的。 Jav

Java8-2-Lambda表示式實戰-一句話實現Map按照Value排序

今天我們來實戰一把, 對Map的Value值排序進行簡化. 在以前的思路我們的做法如下: /** Map根據value排序; @param map @return*/public static <K, V extends Comparable<? super V

Java8-2-Lambda表達式實戰-一句話實現Map按照Value排序

comparing java 但是 ortmap each 答案 new 代碼 ram 今天我們來實戰一把, 對Map的Value值排序進行簡化. 在以前的思路我們的做法如下: /** Map根據value排序; @param map @return*/publi

java簡潔地根據mapvalue或key進行排序

先上程式碼再解釋public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("nine",9

map根據其value進行排序

/** * 根據value對map進行排序 */ public Map sortAllMapByValue(Map map) { // 這裡將map.entrySet()轉換成list List> list = new ArrayList>(map.entrySet()); // 然後通

jsp頁面使用el key獲取map的對應GOOD

action中的程式碼 private Map<String, String> msgs = new HashMap<String, String> msgs.put("loginError", "驗證碼錯誤"); request.setAttrib

mapvalue查詢——find_if的使用

最近是經常使用stl中的map,於是就想記一些關於map的東西。這一篇中會講到map按照value值查詢的方法,就是find_if函式。 大家都知道在map中,排序是按照key值排的,map自帶的find方法也是按著key值查詢的,這在某些情況下可能會遇到一些麻煩。 譬

對listmap的key進行排序

cat clas tostring object tlist problem 時間 sse EDA //對時間戳進行排序 獲取最新的mapList<Map<String, Object>> dateList = new ArrayList<

java對MapValue進行排序

List <Map.Entry<String,Integer>> mapList = null; mapList=new ArrayList<Map.Entry<String,Integer>>(myMap.entry