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