Estructura de datos TreeMap de Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La clase TreeMap en Java es parte de la interfaz de Colecciones de Java e implementa la interfaz Map. Almacena los pares clave-valor en un orden ordenado, a diferencia de otras implementaciones de Map. En este laboratorio, aprenderá a usar efectivamente la clase TreeMap en sus programas Java.

Creando un TreeMap

  • Abra su editor de texto y cree un nuevo archivo llamado TreeMapDemo.java en el directorio ~/proyecto.
  • Importe los paquetes necesarios:
import java.util.Map;
import java.util.TreeMap;
  • Cree un objeto TreeMap:
Map<Integer, String> map = new TreeMap<>();

Agregando elementos al TreeMap

  • Utilice el método put() para agregar elementos al TreeMap:
map.put(1, "John");
map.put(2, "Mary");
map.put(3, "Peter");

Agregue este código dentro del método principal.

Imprimiendo el TreeMap

  • Utilice un bucle for-each para iterar a través del TreeMap:
for(Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}

Usando clasificación personalizada

  • Cree una nueva clase llamada Employee:
class Employee implements Comparable<Employee> {
    private int id;
    private String name;

    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    @Override
    public int compareTo(Employee e) {
        return this.id - e.getId();
    }
}
  • Agregue algunos empleados al TreeMap:
Map<Employee, String> employeeMap = new TreeMap<>();
employeeMap.put(new Employee(3, "John"), "IT");
employeeMap.put(new Employee(2, "Mary"), "HR");
employeeMap.put(new Employee(1, "Peter"), "Finance");
  • Ahora, cuando itere a través del TreeMap, se ordenará según el ID del empleado:
for(Map.Entry<Employee, String> entry : employeeMap.entrySet()) {
    System.out.println(entry.getKey().getId() + " "
                       + entry.getKey().getName() + " "
                       + entry.getValue());
}

Usando Comparadores para la clasificación

  • Defina un Comparador personalizado en su clase TreeMapDemo:
class DescendingOrder implements Comparator<Integer> {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2 - o1;
    }
}
  • Cree un nuevo objeto TreeMap con el Comparador personalizado:
Map<Integer, String> treeMap = new TreeMap<>(new DescendingOrder());
treeMap.put(1, "John");
treeMap.put(4, "Mary");
treeMap.put(2, "Peter");
  • Ahora, cuando itere a través del TreeMap, se ordenará en orden descendente:
for(Map.Entry<Integer, String> entry : treeMap.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}

Accediendo a los elementos del mapa

  • Utilice el método get() para acceder a un elemento específico:
String name = map.get(1);
System.out.println("Name is " + name);

Eliminando elementos del mapa

  • Utilice el método remove() para eliminar un elemento específico:
String removedName = map.remove(2);
System.out.println("Removed: " + removedName);

Obtener el tamaño del mapa

  • Utilice el método size() para obtener el número de elementos en el TreeMap:
int size = map.size();
System.out.println(size);

Obtener los primeros y últimos elementos

  • Utilice los métodos firstKey() y lastKey() para obtener los primeros y últimos elementos en el TreeMap:
int firstKey = map.firstKey();
int lastKey = map.lastKey();

Obtener un rango de elementos

  • Utilice el método subMap() para obtener un rango de elementos:
Map<Integer, String> rangeMap = map.subMap(1, 3);
for(Map.Entry<Integer, String> entry : rangeMap.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}

Compilar y ejecutar el programa

  • Abra su terminal y navegue hasta el directorio ~/proyecto.
  • Compile el archivo TreeMapDemo.java utilizando el comando javac:
javac TreeMapDemo.java
  • Ejecute el programa utilizando el comando java:
java TreeMapDemo

Resumen

En este laboratorio, aprendiste sobre la clase TreeMap en Java y cómo utilizarla de manera efectiva en tus programas. Aprendiste cómo crear un TreeMap, agregar y eliminar elementos, y recuperar elementos basados en criterios específicos. También aprendiste cómo personalizar el orden de clasificación utilizando Comparators. La clase TreeMap proporciona mucha flexibilidad y control sobre la clasificación y el almacenamiento de pares clave-valor.