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等等。

更新於:2023年5月15日

871 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告