java8 實現map以value值排序
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.LinkedHashMap;
public class MapSorted{
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 3);
map.put("B", 5);
map.put("C", 1);
map.put("D", 1);
map.put("E", 9);
System.out.println(map);
//如果value為java物件,則需要實現Comparable介面,重寫compareTo方法
Map<String, Integer> sortedMap = new LinkedHashMap<>();
Map<String, Integer> sortedMap2 = new LinkedHashMap<>();
//ASC
map.entrySet().stream()
.sorted(Map.Entry.<String, Integer>comparingByValue())
.forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
System.out.println(sortedMap);
//DESC Collections.reverseOrder || reversed()
map.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.forEachOrdered(x -> sortedMap2.put(x.getKey(), x.getValue()));
// map.entrySet().stream()
// .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())
// .forEachOrdered(x -> sortedMap2.put(x.getKey(), x.getValue()));
System.out.println(sortedMap2);
//Collectors.toMap 直接返回排好序的map
map = map.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue(), (x1, x2) -> x2, LinkedHashMap::new));
// map = map.entrySet().stream()
// .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (x1, x2) -> x2, LinkedHashMap::new));
System.out.println(map);
}
}
{A=3, B=5, C=1, D=1, E=9}
{C=1, D=1, A=3, B=5, E=9}
{E=9, B=5, A=3, C=1, D=1}
{E=9, B=5, A=3, C=1, D=1}
相關文章
- Map根據Value排序排序
- map/reduce實現 排序排序
- Map按照key和value進行排序排序
- Java交換map的key和value值Java
- Golang Map實現(四) map 的賦值和擴容Golang賦值
- MapReduce 按照Value值進行排序輸出排序
- 一個 key 能儲存多個 value 的 map --- 自定義的 MultiValueMap,實現 Map 介面
- 在android的spinner中,實現取VALUE值和TEXT值。Android
- map自定義排序,根據鍵或者值排隊排序
- java中Map根據Map的value取keyJava
- map切片排序排序
- HashMap排序--Java8HashMap排序Java
- java map存取重複值、幼兒園分班問題、map按key自動排序問題Java排序
- map的實現
- python根據字典內的值實現排序Python排序
- 實現鍵值對儲存(二):以現有鍵值對儲存為模型模型
- Java 之 Map 的鍵,值多重排序問題解決方案Java排序
- list轉map,使用java8,stream流Java
- jQuery實現的獲取select下拉選單的text和value值jQuery
- javascript實現Map結構JavaScript
- 用whistle實現map local
- js map型別實現JS型別
- Java8 HashMap實現原理探究JavaHashMap
- map和set對vector排序排序
- mybatis select返回值為map時,選取表欄位的兩列作為key,valueMyBatis
- 實現堆排序排序
- 如何實現key, value有序的HashMap?HashMap
- Hadoop-Map/Reduce實現實現倒排索引Hadoop索引
- GO 中 map 的實現原理Go
- Java中實現不可變MapJava
- Python dict sort排序 按照key,valuePython排序
- php實現 歸併排序,快速排序PHP排序
- 根據key集合批次從map中獲取value
- GO語言————8.5 map 的排序Go排序
- 如何將列中的low_value和high_value轉換為實際的值
- Js實現Object按照值的某個欄位(數值型別)的大小進行排序JSObject型別排序
- 【Practical Java】實踐1:引數以by value方式而非by reference方式傳遞Java
- GO 實現快速排序Go排序