Método LinkedHashMap removeEldestEntry() en Java

El método java.util.LinkedHashMap.removeEldestEntry() en Java se utiliza para realizar un seguimiento de si el mapa elimina alguna de las entradas más antiguas del mapa. Entonces, cada vez que se agrega un nuevo elemento a LinkedHashMap, la entrada más antigua se elimina del mapa. Este método generalmente se invoca después de agregar los elementos al mapa mediante el uso de los métodos put() y putall().
Este método permite que el mapa se modifique a sí mismo según lo indique su valor de retorno. Aunque se permite que el método modifique el mapa directamente, si lo hace, debe devolver falso, lo que será indicativo del hecho de que el mapa no debe intentar ninguna modificación adicional que genere ambigüedad. No se especifican los efectos de devolver verdadero después de modificar el mapa desde dentro de este método.
Esto es muy útil cuando el mapa representa un caché donde permite que el mapa reduzca el consumo de memoria al eliminar las entradas obsoletas una tras otra. 
Sintaxis: 

private boolean removeEldestEntry(Map.Entry eldest)

Parámetros: el método acepta un parámetro más antiguo que se refiere a la entrada insertada menos recientemente en el mapa. Si el mapa es del orden de acceso, el mayor se refiere a la entrada a la que se accedió menos recientemente y se eliminará si este método devuelve verdadero. Si el mapa estaba vacío antes de la invocación put o putAll, esta será la entrada que se acaba de insertar; en otras palabras, si el mapa contiene una sola entrada, la entrada más antigua también es la entrada más reciente y más reciente.
Valor devuelto: el mapa devuelve verdadero si la entrada más antigua se va a eliminar del mapa y falso si la entrada no se va a quitar o conservar.
El siguiente programa se utiliza para ilustrar el funcionamiento del método java.util.LinkedHashMap.removeEldestEntry(): 
 

Java

// Java program to illustrate removeEldestEntry()
import java.util.*;
 
public class Linked_Hash_Map_Demo {
 
    // Refers to the max size of the map following which
    // the removal takes place of the eldest entry
    private static final int MAX = 6;
 
    public static void main(String[] args)
    {
 
        // Creating the linked hashmap and implementing
        // removeEldestEntry() to MAX size
        LinkedHashMap<Integer, String> li_hash_map =
        new LinkedHashMap<Integer, String>() {
            protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest)
            {
                return size() > MAX;
            }
        };
        // Adding elements using put()
        li_hash_map.put(0, "Welcome");
        li_hash_map.put(1, "To");
        li_hash_map.put(2, "The");
        li_hash_map.put(3, "World");
        li_hash_map.put(4, "Of");
        li_hash_map.put(5, "geeks");
 
        System.out.println("" + li_hash_map);
 
        // Adding more elements
        li_hash_map.put(6, "GeeksforGeeks");
 
        // Displaying the map after adding one more element
        System.out.println("" + li_hash_map);
 
        // Adding more elements
        li_hash_map.put(7, "Hello");
 
        // Displaying the map after adding one more element
        System.out.println("" + li_hash_map);
    }
}
Producción: 

{0=Welcome, 1=To, 2=The, 3=World, 4=Of, 5=geeks}
{1=To, 2=The, 3=World, 4=Of, 5=geeks, 6=GeeksforGeeks}
{2=The, 3=World, 4=Of, 5=geeks, 6=GeeksforGeeks, 7=Hello}

 

Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html#removeEldestEntry-java.util.Map.Entry-
 

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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