Estou tentando implementar um dicionário (como no livro físico). Eu tenho uma lista de palavras e seus significados.
Que estrutura / tipo de dados o Java fornece para armazenar uma lista de palavras e seus significados como pares de chave / valor.
Como, dada uma chave, posso encontrar e retornar o valor?
java
dictionary
key-value
user1849819
fonte
fonte
Respostas:
Você vai querer um
Map<String, String>
. As classes que implementam aMap
interface incluem (mas não estão limitadas a):HashMap
LinkedHashMap
Hashtable
Cada um foi projetado / otimizado para determinadas situações (consulte os respectivos documentos para obter mais informações).
HashMap
é provavelmente o mais comum; o padrão inicial.Por exemplo (usando a
HashMap
):fonte
Map
(verifique o javadoc)Map<String, String> map = new HashMap<>();
Isso cria um dicionário de texto (string):
você o usa como:
Map<String, String> dictionary = new Map<String, String>();
Isso funciona corretamente.
fonte
dictionary["key"]
não vai funcionar - deveria serdictionary.get("key")
.Use a interface Map e uma implementação como HashMap
fonte
Há um dicionário de classe abstrata
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
No entanto, isso requer implementação.
Java nos dá uma boa implementação chamada Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
fonte
Dictionary
está obsoleto e nenhuma das implementações o estende.