Java: la clase TreeMap

La clase TreeMap implementa la interfaz Map mediante un árbol. Un TreeMap proporciona un medio eficaz para almacenar pares clave / valor en orden ordenado y permite una rápida recuperación.

Debe tener en cuenta que, a diferencia de un mapa hash, un mapa de árbol garantiza que sus elementos se clasificarán en un orden de clave ascendente.

A continuación se muestra la lista de los constructores admitidos por la clase TreeMap.

No Señor. Constructores y descripción
1

TreeMap( )

Este constructor construye un mapa de árbol vacío que se ordenará usando el orden natural de sus claves.

2

TreeMap(Comparator comp)

Este constructor construye un mapa vacío basado en árbol que se ordenará usando la compilación Comparator.

3

TreeMap(Map m)

Este constructor inicializa un mapa de árbol con las entradas de m, que se ordenará utilizando el orden natural de las claves.

4

TreeMap(SortedMap sm)

Este constructor inicializa un mapa de árbol con las entradas del SortedMap sm, que se ordenará en el mismo orden que sm.

Además de los métodos heredados de sus clases principales, TreeMap define los siguientes métodos:

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

void clear()

Elimina todas las asignaciones de este TreeMap.

2

Object clone()

Devuelve una copia superficial de esta instancia de TreeMap.

3

Comparator comparator()

Devuelve el comparador usado para ordenar este mapa, o nulo si este mapa usa el orden natural de sus claves.

4

boolean containsKey(Object key)

Devuelve verdadero si este mapa contiene un mapeo para la clave especificada.

5

boolean containsValue(Object value)

Devuelve verdadero si este mapa asigna una o más claves al valor especificado.

6

Set entrySet()

Devuelve una vista de conjunto de las asignaciones contenidas en este mapa.

7

Object firstKey()

Devuelve la primera clave (la más baja) actualmente en este mapa ordenado.

8

Object get(Object key)

Devuelve el valor al que este mapa asigna la clave especificada.

9

SortedMap headMap(Object toKey)

Devuelve una vista de la parte de este mapa cuyas claves son estrictamente menores que toKey.

10

Set keySet()

Devuelve una vista de conjunto de las claves contenidas en este mapa.

11

Object lastKey()

Devuelve la última clave (la más alta) actualmente en este mapa ordenado.

12

Object put(Object key, Object value)

Asocia el valor especificado con la clave especificada en este mapa.

13

void putAll(Map map)

Copia todas las asignaciones del mapa especificado a este mapa.

14

Object remove(Object key)

Elimina la asignación de esta clave de este TreeMap si está presente.

15

int size()

Devuelve el número de asignaciones de clave-valor en este mapa.

dieciséis

SortedMap subMap(Object fromKey, Object toKey)

Devuelve una vista de la parte de este mapa cuyas claves van de fromKey, inclusive, a toKey, exclusivo.

17

SortedMap tailMap(Object fromKey)

Devuelve una vista de la parte de este mapa cuyas claves son mayores o iguales que fromKey.

18

Collection values()

Devuelve una vista de colección de los valores contenidos en este mapa.

Ejemplo

El siguiente programa ilustra varios de los métodos admitidos por esta colección:

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