Método LinkedHashMap removeEldestEntry() em Java
O método java.util.LinkedHashMap.removeEldestEntry() em Java é usado para controlar se o mapa remove alguma entrada mais antiga do mapa. Portanto, cada vez que um novo elemento é adicionado ao LinkedHashMap, a entrada mais antiga é removida do mapa. Esse método geralmente é chamado após a adição dos elementos no mapa pelo uso dos métodos put() e putall().
Este método permite que o mapa se modifique conforme direcionado por seu valor de retorno. Embora o método tenha permissão para modificar o mapa diretamente, se o fizer, ele deve retornar false, o que será indicativo do fato de que o mapa não deve tentar nenhuma modificação adicional que leve à ambigüidade. Os efeitos de retornar true após modificar o mapa de dentro desse método não são especificados.
Isso é muito útil quando o mapa representa um cache onde permite que o mapa reduza o consumo de memória excluindo entradas obsoletas uma após a outra.
Sintaxe:
private boolean removeEldestEntry(Map.Entry eldest)
Parâmetros: o método aceita um parâmetro mais antigo que se refere à entrada menos recentemente inserida no mapa. Se o mapa for da ordem de acesso, o mais antigo se refere à entrada menos acessada recentemente e será removido se este método retornar verdadeiro. Se o mapa estava vazio antes da chamada put ou putAll, essa será a entrada que acabou de ser inserida; em outras palavras, se o mapa contém uma única entrada, a entrada mais antiga também é a entrada mais recente e mais recente.
Valor de retorno: O mapa retorna verdadeiro se a entrada mais antiga deve ser removida do mapa e falso se a entrada não deve ser removida ou retida.
O programa abaixo é usado para ilustrar o funcionamento do método java.util.LinkedHashMap.removeEldestEntry():
// 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);
}
}
{0 = Bem-vindo, 1 = Para, 2 = O, 3 = Mundo, 4 = De, 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}
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva