Java中LinkedHashMap按鍵排序
LinkedHashMap是一個泛型類,用於實現Map介面。它也是HashMap類的子類,因此可以使用所有方法並執行HashMap類能夠執行的類似操作。
Java提供了多種排序LinkedHashMap的方法,本文將學習如何建立並透過其鍵對其進行排序。
按鍵排序LinkedHashMap的程式
在直接跳轉到排序程式之前,讓我們先了解一些概念:
LinkedHashMap
正如我們前面所討論的,LinkedHashMap類擴充套件了HashMap類以實現Map介面。它維護鍵值對。鍵是一個用於獲取和接收與其關聯的值的物件。它按插入順序將對映的元素儲存在LinkedList中,即它維護元素的插入順序。此外,每當我們返回其元素時,它都將按插入順序列印。
LinkedHashMap的一般語法如下:
語法
LinkedHashMap< TypeOfKey, TypeOfValue > nameOfMap = new LinkedHashMap<>();
在上述語法中:
TypeOfKey - 指定鍵的資料型別。
TypeOfValue - 指定將儲存在對映中的值的資料型別。
nameOfMap - 為您的對映提供一個合適的名稱。
TreeMap
它是一個用於實現NavigableMap介面的類。它將對映的元素儲存在樹結構中。要對LinkedHashMap元素進行排序,我們需要使用此類。最明顯的原因是它提供了一種有效的替代方法,可以按排序順序儲存鍵值對。
TreeMap的一般語法如下:
語法
TreeMap< TypeOfKey, TypeOfValue > nameOfMap = new TreeMap<>();
要對LinkedHashMap的元素進行排序,我們還需要這些方法:
put() - 它接受兩個引數,一個用於鍵,另一個用於其值,然後將其插入到指定的對映中。
get() - 它返回與指定鍵關聯的值。
keySet() - 它返回指定對映的鍵集。
putAll() - 它接受一個引數並將它的元素複製到新的指定對映中。
演算法
步驟1 - 建立名為“workers”的LinkedHashMap物件,並使用“put()”方法將元素插入其中。
步驟2 - 現在,定義名為“SrtMap”的TreeMap來儲存對映“workers”的排序元素。
步驟3 - 最後,使用for each迴圈遍歷排序後的TreeMap“SrtMap”。在此迴圈內,使用“keySet()”方法檢索值。
示例
import java.util.*; public class Srt { public static void main(String[] args) { LinkedHashMap<String, Integer> workers = new LinkedHashMap<>(); // Adding elements in the workers map workers.put("Vaibhav", 4000); workers.put("Ansh", 3000); workers.put("Vivek", 1500); workers.put("Aman", 2000); workers.put("Tapas", 2500); // printing details workers map in unsorted order System.out.println("Elements of the map: "); for (String unKey : workers.keySet()) { System.out.println("Name: " + unKey + ", Salary: " + workers.get(unKey)); } // create new tree map TreeMap<String, Integer> SrtMap = new TreeMap<>(); // adding workers map details to new tree map SrtMap.putAll(workers); // printing details workers map in sorted order System.out.println("Elements of the newly sorted map: "); for (String srtKey : SrtMap.keySet()) { System.out.println("Name: " + srtKey + ", Salary: " + workers.get(srtKey)); } } }
輸出
Elements of the map: Name: Vaibhav, Salary: 4000 Name: Ansh, Salary: 3000 Name: Vivek, Salary: 1500 Name: Aman, Salary: 2000 Name: Tapas, Salary: 2500 Elements of the newly sorted map: Name: Aman, Salary: 2000 Name: Ansh, Salary: 3000 Name: Tapas, Salary: 2500 Name: Vaibhav, Salary: 4000 Name: Vivek, Salary: 1500
結論
在本文中,我們建立了一個LinkedHashMap,並透過TreeMap按鍵對其進行了排序。我們還了解了Map介面的一些內建方法的使用,例如put、putAll、get等等。