Cómo usar la estructura de datos de Java TreeMap

Cómo usar la estructura de datos de Java TreeMap

La clase Java TreeMap almacena datos en una estructura de árbol utilizando una interfaz de mapa. Esta clase amplía la clase AbstractMap y, al igual que su clase principal, TreeMap tiene dos parámetros de tipo. Uno de sus parámetros de tipo representa las claves en el TreeMap, mientras que el otro representa los valores.





La estructura de datos TreeMap almacena pares clave-valor y le permite realizar operaciones CRUD en estos datos.





la computadora no despierta windows 10

Cómo crear un TreeMap en Java

La clase TreeMap tiene cuatro constructores que puede usar para crear un nuevo objeto TreeMap. El constructor predeterminado es el más popular de los cuatro. Este constructor no acepta argumentos y genera un mapa de árbol vacío.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

El código anterior genera un mapa de árbol vacío llamado clientes .

Llenar la estructura de datos de TreeMap

los poner() El método agrega un elemento a un objeto TreeMap. Se necesitan dos argumentos: una clave y su valor. Puede agregar elementos al mapa de árbol en cualquier orden aleatorio y la estructura de datos los almacenará en orden ascendente, según sus claves.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

El código anterior agrega cinco clientes, en orden aleatorio, al mapa de árbol de clientes.

Visualización de elementos en un TreeMap

La clase TreeMap almacena sus datos en un objeto. Entonces, para ver todos los elementos en un mapa de árbol, simplemente puede imprimir el objeto de mapa de árbol en la consola:





// View all tree map items as an object 
System.out.println(customers);

El código anterior imprime el siguiente resultado en la consola:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Tenga en cuenta que el objeto anterior muestra los elementos en orden ascendente. También puede ver cada elemento y su clave correspondiente usando un bucle for de Java .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

El código anterior imprime el siguiente resultado en la consola:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Actualización de elementos en un TreeMap

La clase TreeMap le permite actualizar un elemento existente usando el reemplazar() método. Hay dos métodos de reemplazo. El primer método toma una clave existente y el nuevo valor al que desea asignar la clave existente.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

El código anterior imprime el siguiente objeto en la consola:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Como puedes ver kim marrón es ahora kim smith . El segundo método replace() toma una clave existente, el valor actual de la clave y el nuevo valor que desea asignar a la clave.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

El código anterior imprime el siguiente objeto en la consola:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

En el objeto de arriba michelle noe reemplaza jim riley .

Eliminación de elementos del TreeMap

Si desea eliminar un solo elemento del mapa de árbol, el retirar() método es su única opción. Toma la clave asociada con el elemento que desea eliminar y devuelve el valor eliminado.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Ejecutar el código anterior imprime el siguiente objeto en la consola:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Este Clase Java también tiene un claro() método que le permite eliminar todos los elementos en el mapa de árbol.

El TreeMap frente a la clase Java HashMap

TreeMap y HashMap son dos de las clases de mapas de Java más populares. Ambos amplían la clase AbstractMap. Esta relación da acceso a las clases TreeMap y HashMap a muchas de las mismas funciones.

Sin embargo, hay algunas diferencias notables entre estas dos clases de mapas. TreeMap usa una implementación de árbol rojo-negro de la interfaz de mapa, mientras que HashMap usa una tabla hash. HashMap le permite almacenar una sola clave nula, mientras que TreeMap no lo hace. Finalmente, un HashMap es más rápido que un TreeMap. La velocidad algorítmica del primero es O(1) mientras que la del segundo es O(log(n)).