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值從大到小進行排序的!
相關推薦
Map中按value值排序
大家都知道,在java中的集合Map中按鍵值key排序比較簡單,只需引用集合TreeMap即可,可是怎樣實現按value值排序呢?下面我們來測試一下: public class TestHashMap { public static void main(String[]
c++中map按value值排序
int cmp(const pair<string, int>& x, const pair<string, int>& y) //定義sort排序方式 { return x.second > y.second;}
c++ map按value值排序
map預設是按key值從小到大排序的,先改為按value排序。 基本思路就是:想直接用sort排序是做不到的,sort只支援陣列、vetctor等的排序,所以我們可以先把map裝進pair裡,然後再放
如何對map中的value進行排序
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)
JAVA中Map按value值進行逆序排序
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 實現map以value值排序
import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.stream.Collector; import java.util.stream.C
【java】各種Map中keySet()返回值的排序問題
上回說到,由於對資料進行處理的時候是按照亂序一行一行的處理,導致並行執行緒各自佔據了一部分資料,誰也不肯釋放,從而發生死鎖。 為什麼會亂序,是因為取得資料行主鍵的時候,使用了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簡潔地根據map中的value或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
map按value值查詢——find_if的使用
最近是經常使用stl中的map,於是就想記一些關於map的東西。這一篇中會講到map按照value值查詢的方法,就是find_if函式。 大家都知道在map中,排序是按照key值排的,map自帶的find方法也是按著key值查詢的,這在某些情況下可能會遇到一些麻煩。 譬
對list中map中的key值進行排序
cat clas tostring object tlist problem 時間 sse EDA //對時間戳進行排序 獲取最新的mapList<Map<String, Object>> dateList = new ArrayList<
java對Map按Value進行排序
List <Map.Entry<String,Integer>> mapList = null; mapList=new ArrayList<Map.Entry<String,Integer>>(myMap.entry