首頁  >  文章  >  Java  >  在Java中以相反順序迭代TreeMap

在Java中以相反順序迭代TreeMap

WBOY
WBOY轉載
2023-08-21 13:05:061675瀏覽

在Java中以相反順序迭代TreeMap

TreeMap是Java Collection Framework的一個類,它實作了NavigableMap介面。它將地圖的元素儲存在樹狀結構中,並提供了一種有效的方法來按排序順序儲存鍵值對。換句話說,它總是以升序返回元素。然而,Java提供了幾種以降序遍歷TreeMap的方法。在本文中,我們將探討以逆序遍歷TreeMap的方法。

在Java中以相反順序迭代TreeMap

我們將使用以下方法以相反的順序列印TreeMap的元素:
  • 使用TreeMap.descendingMap()方法
  • 使用TreeMap.descendingKeySet()方法
  • 使用 Collections.reverseOrder() 方法

讓我們透過範例程式逐一討論它們

Example 1

的中文翻譯為:

範例 1

在這個例子中,我們將使用內建的方法TreeMap.descendingMap()來以相反的順序迭代TreeMap。為此,我們首先定義一個TreeMap,然後將其元素以相反的順序儲存到另一個map。

import java.util.*;
public class Example1 {
   public static void main(String[] args) {
      // creating a TreeMap 
      TreeMap<String, Integer> TrMap = new TreeMap<>();
      // Adding elements in the map
      TrMap.put("Backpack", 4000);
      TrMap.put("Desktop", 3000);
      TrMap.put("Keypad", 1500);
      TrMap.put("Watch", 2000);
      TrMap.put("Pen drive", 2500);
      // storing the elements of the map in descending order
      Map<String, Integer> newMap = TrMap.descendingMap();
      // printing the details of map 
      System.out.println("Elements of the map in Reverse Order: ");
      // iterating through the map
      for (String unKey : newMap.keySet()) {
         // printing details of map in reverse order
         System.out.println("Item: " + unKey + ", Price: " + newMap.get(unKey));
      }
   }
}

輸出

Elements of the map in Reverse Order: 
Item: Watch, Price: 2000
Item: Pen drive, Price: 2500
Item: Keypad, Price: 1500
Item: Desktop, Price: 3000
Item: Backpack, Price: 4000

Example 2

的中文翻譯為:

範例2

在下面的範例中,我們將使用內建的方法TreeMap.descendingKeySet()來以相反的順序迭代遍歷TreeMap。對於這個操作,我們不再建立一個像前面範例中的Map,而是建立一個以相反順序儲存Map鍵的集合。此外,使用這些鍵我們將獲取相應的值。

import java.util.*;
public class Example2 {
   public static void main(String[] args) {
      // creating a TreeMap 
      TreeMap<Integer, String> TrMap = new TreeMap<>();
      // Adding elements in the map
      TrMap.put(40, "Backpack");
      TrMap.put(12, "Desktop");
      TrMap.put(150, "Keypad");
      TrMap.put(125, "Watch");
      TrMap.put(250, "Pen drive");
      // retrieving the keys in reverse order
      Set<Integer> keys = TrMap.descendingKeySet();
      // printing the details of map 
      System.out.println("Elements of the map in Reverse Order: ");
      // iterating through the map
      for (Integer unKey : keys) {
         // printing details of map in reverse order
         System.out.println("Item: " + TrMap.get(unKey) + ", Quantity: " + unKey);
      }
   }
}

輸出

Elements of the map in Reverse Order: 
Item: Pen drive, Quantity: 250
Item: Keypad, Quantity: 150
Item: Watch, Quantity: 125
Item: Backpack, Quantity: 40
Item: Desktop, Quantity: 12

Example 3

的中文翻譯為:

範例3

這是另一個取得TreeMap元素以相反順序的範例。我們只需要將Collections.reverseOrder()方法傳遞給TreeMap的建構函數,它將以相反順序傳回TreeMap集合的元素。

import java.util.*;
public class Example3 {
   public static void main(String[] args) {
      // creating a TreeMap by passing Collections.reverseOrder() 
      TreeMap<String, Integer> TrMap = new TreeMap<>(Collections.reverseOrder());
      // Adding elements in the map
      TrMap.put("Kurti", 4000);
      TrMap.put("Shirt", 3000);
      TrMap.put("TShirt", 1500);
      TrMap.put("Watch", 2000);
      TrMap.put("Perfume", 2500);
      // printing the details of map 
      System.out.println("Elements of the map in Reverse Order: ");
      // iterating through the map
      for (String unKey : TrMap.keySet()) {
         // printing details of map in reverse order
         System.out.println("Item: " + unKey + ", Price: " + TrMap.get(unKey));
      }
   }
}

輸出

Elements of the map in Reverse Order: 
Item: Watch, Price: 2000
Item: TShirt, Price: 1500
Item: Shirt, Price: 3000
Item: Perfume, Price: 2500
Item: Kurti, Price: 4000

結論

###我們從定義TreeMap開始,在接下來的部分中,我們討論瞭如何按照相反的順序遍歷TreeMap。為了進行這個操作,我們使用了三種不同的內建方法:descendingMap(),descendingKeySet()和Collections.reverseOrder() ###

以上是在Java中以相反順序迭代TreeMap的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除