14/08/2018, 13:55

SortedMap Interface trong Java

SortedMap Interface trong Java kế thừa lớp Map. Nó bảo đảm rằng các entry được duy trì theo thứ tự key tăng dần. Một số phương thức ném NoSuchElementException khi không có item nào trong map đang gọi. Một ClassCastException được ném khi một đối tượng là không tương thích với các phần tử ...

SortedMap Interface trong Java kế thừa lớp Map. Nó bảo đảm rằng các entry được duy trì theo thứ tự key tăng dần.

Một số phương thức ném NoSuchElementException khi không có item nào trong map đang gọi. Một ClassCastException được ném khi một đối tượng là không tương thích với các phần tử trong một map. Một NullPointerException bị ném nếu cố gắng sử dụng một đối tượng null khi null không được phép trong map.

Để hiểu sâu hơn các khái niệm được trình bày trong chương này, mời bạn tham khảo loạt bài: Ví dụ về Collection trong Java.

Các phương thức được khai báo bởi SortedMap trong Java được liệt kê trong bảng sau:

STT Phương thức và Miêu tả
1 Comparator comparator( )

Trả về bộ so sánh của SortedMap đang gọi. Nếu thứ tự tự nhiên được sử dụng cho map đang gọi, thì null được trả về

2 Object firstKey( )

Trả về key đầu tiên trong map đang gọi

3 SortedMap headMap(Object end)

Trả về một sorted map cho các map entry này với các key mà nhỏ hơn end

4 Object lastKey( )

Trả về key cuối cùng trong map đang gọi này

5 SortedMap subMap(Object start, Object end)

Trả về một map chứa các entry của nó với các key là lớn hơn hoặc bằng start và nhỏ hơn end

6 SortedMap tailMap(Object start)

Trả về một map chứa các entry của nó với các key là lớn hơn hoặc bằng start

Ví dụ

SortedMap Interface trong Java có sự triển khai trong các lớp đa dạng tương tự như TreeMap. Ví dụ sau minh họa tính năng của SortedMap Interface trong Java:

import java.util.*;

public class TreeMapDemo {

   public static void main(String args[]) {
      // Tao mot hash map
      TreeMap tm = new TreeMap();
      // Dat cac phan tu vao trong map
      tm.put("Zara", new Double(3434.34));
      tm.put("Mahnaz", new Double(123.22));
      tm.put("Ayan", new Double(1378.00));
      tm.put("Daisy", new Double(99.22));
      tm.put("Qadir", new Double(-19.08));
      
	  // Lay mot set cac entry
      Set set = tm.entrySet();
      // Lay mot iterator
      Iterator i = set.iterator();
      // Hien thi cac phan tu
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      // Gui 1000 vao trong tai khoan cua Zara
      double balance = ((Double)tm.get("Zara")).doubleValue();
      tm.put("Zara", new Double(balance + 1000));
      System.out.println("Balance hien tai cua Zara la: " +
      tm.get("Zara"));
   }
}

Nó sẽ cho kết quả sau:

Ayan: 1378.0
Daisy 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34
Balance hien tai cua Zara la: 4434.34

0