如何使用 Java 中的 lambda 來按鍵和值對 Map 排序?
**Map** 介面實現了**Collection **介面,該介面提供了**map** **資料** **結構**的功能。一個 Map 不包含任何**重複** **鍵**,並且每個鍵都與**單個**值相關聯。我們可以使用與它們關聯的鍵來**訪問**和**修改**值。
在下面的兩個示例中,我們可以使用 lambda 表示式按**鍵**和**值**對 Map 進行排序。
按鍵排序 Map 的示例
import java.util.*;
import java.util.stream.*;
public class MapSortUsingKeyTest {
public static void main(String args[]) {
// Sort a Map by their key
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(2, "India");
map.put(5, "Australia");
map.put(3, "England");
map.put(1, "Newzealand");
map.put(4, "Scotland");
Map<Integer, String> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(e1, e2) -> e2, LinkedHashMap::new));
System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray()));
}
}
輸出
Sorted Map: [1=Newzealand, 2=India, 3=England, 4=Scotland, 5=Australia]
按值排序 Map 的示例
import java.util.*;
import java.util.stream.*;
public class MapSortUsingValueTest {
public static void main(String args[]) {
//Sort a Map by their Value
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Jaidev");
map.put(2, "Adithya");
map.put(3, "Vamsi");
map.put(4, "Krishna");
map.put(5, "Chaitanya");
Map<Integer, String> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(e1, e2) -> e2, LinkedHashMap::new));
System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray()));
}
}輸出
Sorted Map: [2=Adithya, 5=Chaitanya, 1=Jaidev, 4=Krishna, 3=Vamsi]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP