A classe Java Hashtable implementa uma hashtable, que mapeia chaves para valores. Ele herda a classe Dictionary e implementa a interface Map.
Pontos para lembrar
- Um Hashtable é um array de uma lista. Cada lista é conhecida como balde. A posição do bucket é identificada chamando o método hashcode(). Uma Hashtable contém valores baseados na chave.
- A classe Java Hashtable contém elementos exclusivos.
- A classe Java Hashtable não permite chave ou valor nulo.
- A classe Java Hashtable é sincronizada.
- A capacidade padrão inicial da classe Hashtable é 11, enquanto loadFactor é 0,75.
Declaração de classe hashtable
Vamos ver a declaração da classe java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Parâmetros da classe hashtable
Vamos ver os parâmetros da classe java.util.Hashtable.
Construtores da classe Java Hashtable
Construtor | Descrição |
---|---|
Tabela hash() | Ele cria uma tabela hash vazia com capacidade e fator de carga padrão iniciais. |
Tabela hash (capacidade interna) | Ele aceita um parâmetro inteiro e cria uma tabela hash que contém uma capacidade inicial especificada. |
Hashtable(int capacidade, float loadFactor) | É usado para criar uma tabela hash com capacidade inicial e loadFactor especificados. |
Tabela hash (Mapa t) | Ele cria uma nova tabela hash com os mesmos mapeamentos do mapa fornecido. |
Métodos da classe Java Hashtable
Método | Descrição |
---|---|
vazio claro() | É usado para redefinir a tabela hash. |
Clone de objeto() | Ele retorna uma cópia superficial do Hashtable. |
V computar (tecla K, função de remapeamento BiFunction) | É usado para calcular um mapeamento para a chave especificada e seu valor mapeado atual (ou nulo se não houver mapeamento atual). |
V computaIfAbsent (tecla K, função de mapeamentoFunction) | É usado para calcular seu valor usando a função de mapeamento fornecida, se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para nulo) e inseri-la neste mapa, a menos que seja nula. |
V computaIfPresent (tecla K, função de remapeamento BiFunction) | É usado para calcular um novo mapeamento dada a chave e seu valor mapeado atual se o valor da chave especificada estiver presente e não for nulo. |
Elementos de enumeração() | Ele retorna uma enumeração dos valores na tabela hash. |
Definir | Ele retorna uma visualização definida dos mapeamentos contidos no mapa. |
booleano é igual (objeto o) | É usado para comparar o objeto especificado com o mapa. |
void forEach (ação BiConsumer) | Ele executa a ação especificada para cada entrada no mapa até que todas as entradas tenham sido processadas ou a ação gere uma exceção. |
V getOrDefault (chave do objeto, V defaultValue) | Ele retorna o valor para o qual a chave especificada está mapeada ou defaultValue se o mapa não contiver nenhum mapeamento para a chave. |
int hashCode() | Ele retorna o valor do código hash para o mapa |
Chaves de enumeração() | Ele retorna uma enumeração das chaves na tabela hash. |
Definir keySet() | Ele retorna uma visualização Set das chaves contidas no mapa. |
Mesclagem V (chave K, valor V, função de remapeamento BiFunction) | Se a chave especificada ainda não estiver associada a um valor ou estiver associada a nulo, associa-a ao valor não nulo fornecido. |
V colocar (chave K, valor V) | Ele insere o valor especificado com a chave especificada na tabela hash. |
void putAll(Mapa t)) | É usado para copiar todos os pares de valores-chave do mapa para a tabela hash. |
V putIfAbsent(chave K, valor V) | Se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para nulo), associa-a ao valor fornecido e retorna nulo, caso contrário, retorna o valor atual. |
remoção booleana (chave do objeto, valor do objeto) | Ele remove os valores especificados com as chaves especificadas associadas da tabela hash. |
Substituição V (tecla K, valor V) | Ele substitui o valor especificado por uma chave especificada. |
substituição booleana (tecla K, V oldValue, V newValue) | Ele substitui o valor antigo pelo novo valor de uma chave especificada. |
void replaceAll (função BiFunction) | Ele substitui o valor de cada entrada pelo resultado da invocação de uma determinada função nessa entrada até que todas as entradas tenham sido processadas ou a função gere uma exceção. |
String paraString() | Ele retorna uma representação em string do objeto Hashtable. |
Valores de coleção() | Ele retorna uma visão de coleção dos valores contidos no mapa. |
booleano contém (valor do objeto) | Este método retorna verdadeiro se algum valor igual ao valor existir na tabela hash, caso contrário, retorna falso. |
booleano contémValue (valor do objeto) | Este método retorna verdadeiro se algum valor igual ao valor existir na tabela hash, caso contrário, retorna falso. |
booleano contémKey (chave do objeto) | Este método retorna verdadeiro se alguma chave igual à chave existir na tabela hash, caso contrário, retorna falso. |
booleano isEmpty() | Este método retorna verdadeiro se a tabela hash estiver vazia; retorna falso se contiver pelo menos uma chave. |
repetição de vazio protegido() | Ele é usado para aumentar o tamanho da tabela hash e refazer todas as suas chaves. |
V get (chave do objeto) | Este método retorna o objeto que contém o valor associado à chave. |
V remover (chave do objeto) | É usado para remover a chave e seu valor. Este método retorna o valor associado à chave. |
tamanho interno() | Este método retorna o número de entradas na tabela hash. |
Exemplo de tabela hash Java
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Teste agora
Saída:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Exemplo de tabela hash Java: remove()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
Saída:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Exemplo de tabela hash Java: getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
Saída:
Vijay Not Found
Exemplo de tabela hash Java: putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
Saída:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
Exemplo de hashtable Java: livro
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Saída:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8