Java: la interfaz SortedMap

La interfaz de SortedMap amplía Map. Asegura que las entradas se mantengan en un orden de clave ascendente.

Varios métodos lanzan una NoSuchElementException cuando no hay elementos en el mapa de invocación. Se lanza una ClassCastException cuando un objeto es incompatible con los elementos de un mapa. Se lanza una NullPointerException si se intenta utilizar un objeto nulo cuando no se permite nulo en el mapa.

Los métodos declarados por SortedMap se resumen en la siguiente tabla:

No Señor. Método y descripción
1

Comparator comparator( )

Devuelve el comparador del mapa ordenado que invoca. Si se utiliza el orden natural para el mapa de invocación, se devuelve un valor nulo.

2

Object firstKey( )

Devuelve la primera clave en el mapa de invocación.

3

SortedMap headMap(Object end)

Devuelve un mapa ordenado para aquellas entradas de mapa con claves que son menores que el final.

4

Object lastKey( )

Devuelve la última clave en el mapa de invocación.

5

SortedMap subMap(Object start, Object end)

Devuelve un mapa que contiene aquellas entradas con claves que son mayores o iguales al inicio y menores al final.

6

SortedMap tailMap(Object start)

Devuelve un mapa que contiene aquellas entradas con claves que son mayores o iguales al inicio.

Ejemplo

SortedMap tiene su implementación en varias clases como TreeMap. A continuación se muestra el ejemplo para explicar la funcionalidad de SortedMap:

import java.util.*;
public class TreeMapDemo {

   public static void main(String args[]) {
      // Create a hash map
      TreeMap tm = new TreeMap();
      
      // Put elements to the 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));
      
      // Get a set of the entries
      Set set = tm.entrySet();
      
      // Get an iterator
      Iterator i = set.iterator();
      
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposit 1000 into Zara's account
      double balance = ((Double)tm.get("Zara")).doubleValue();
      tm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + tm.get("Zara"));
   }
}

Esto producirá el siguiente resultado:

Salida

Ayan: 1378.0
Daisy: 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34

Zara's new balance: 4434.34