Java TreeMap - FloorEntry() y CeilingEntry()

Java TreeMap - FloorEntry() y CeilingEntry()

Java TreeMap es una estructura de datos que almacena elementos en un orden ascendente o descendente según el valor de la clave. Permite buscar, insertar y eliminar elementos en O(log n) tiempo. FloorEntry() y CeilingEntry() son dos métodos proporcionados por TreeMap que ayudan a buscar elementos según el orden predefinido y funciones específicas.

📋 Aquí podrás encontrar✍
  1. Usando FloorEntry()
  2. Usando CeilingEntry()
  3. Ejemplos de uso
  4. Conclusión
  5. Preguntas frecuentes
    1. ¿Qué hace el método FloorEntry() en Java TreeMap?
    2. ¿Qué hace el método CeilingEntry() en Java TreeMap?
    3. ¿Cuál es la complejidad del tiempo para encontrar elementos en Java TreeMap usando FloorEntry() y CeilingEntry()?
    4. ¿Qué puedo usar Java TreeMap para almacenar?

Usando FloorEntry()

FloorEntry(K key) devuelve la entrada más grande (key-value) cuya clave es menor o igual a la clave dada. Por ejemplo:


TreeMap treeMap = new TreeMap<>();
treeMap.put(1, "uno");
treeMap.put(2, "dos");
treeMap.put(4, "cuatro");
Map.Entry entry = treeMap.floorEntry(3);
System.out.println(entry.getKey() + " " + entry.getValue());

La salida en este caso sería "2 dos", ya que el siguiente elemento mayor de 3 es 4, pero no es menor o igual que 3. Si la clave dada es menor que todas las claves almacenadas en el mapa, devuelve null.

Usando CeilingEntry()

CeilingEntry(K key) devuelve la entrada más pequeña (key-value) cuya clave es mayor o igual a la clave dada. Por ejemplo:


TreeMap treeMap = new TreeMap<>();
treeMap.put(1, "uno");
treeMap.put(2, "dos");
treeMap.put(4, "cuatro");
Map.Entry entry = treeMap.ceilingEntry(3);
System.out.println(entry.getKey() + " " + entry.getValue());

La salida en este caso también sería "4 cuatro", ya que el siguiente elemento menor o igual que 3 es 4. Si la clave dada es mayor que todas las claves almacenadas en el mapa, devuelve null.

Ejemplos de uso

Supongamos que tenemos un TreeMap para almacenar las notas de un grupo de estudiantes. Las claves representan los identificadores de los estudiantes, y los valores son las notas correspondientes.

Podemos usar el método floorEntry() para buscar la nota más cercana por debajo de un valor determinado. Por ejemplo, si queremos saber la nota más cercana por debajo de un 8, podemos escribir:


Map.Entry entry = treeMap.floorEntry(8);
if(entry != null) {
System.out.println("La nota más cercana por debajo de 8 es " + entry.getValue());
} else {
System.out.println("No hay notas menores a 8.");
}

Podemos usar el método ceilingEntry() para buscar la nota más cercana por encima de un valor determinado. Por ejemplo, si queremos saber la nota más cercana por encima de un 5, podemos escribir:


Map.Entry entry = treeMap.ceilingEntry(5);
if(entry != null) {
System.out.println("La nota más cercana por encima de 5 es " + entry.getValue());
} else {
System.out.println("No hay notas mayores a 5.");
}

Conclusión

En este artículo hemos visto cómo usar los métodos FloorEntry() y CeilingEntry() proporcionados por Java TreeMap. Aproveche estos métodos para buscar elementos en una estructura de datos ordenada y específica de una manera eficiente y productiva. Si desea obtener más información sobre TreeMap y otros objetos Java, consulte la documentación oficial de Java.

Preguntas frecuentes

¿Qué hace el método FloorEntry() en Java TreeMap?

El método FloorEntry() en Java TreeMap devuelve la clave-valor más cercana que es menor o igual a la clave dada.

¿Qué hace el método CeilingEntry() en Java TreeMap?

El método CeilingEntry() en Java TreeMap devuelve la clave-valor más cercana que es mayor o igual a la clave dada.

¿Cuál es la complejidad del tiempo para encontrar elementos en Java TreeMap usando FloorEntry() y CeilingEntry()?

La complejidad del tiempo para encontrar elementos en Java TreeMap utilizando FloorEntry() y CeilingEntry() es O(log n). Esto significa que el tiempo de ejecución aumenta a medida que aumenta el tamaño del mapa, pero solo en una tasa logarítmica en lugar del tiempo lineal.

¿Qué puedo usar Java TreeMap para almacenar?

Java TreeMap se puede utilizar para almacenar cualquier objeto que implemente la interfaz Comparable o cualquier objeto que se le pase un objeto Comparator personalizado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir