Estoy tratando de implementar un diccionario (como en el libro físico). Tengo una lista de palabras y sus significados.
¿Qué tipo / estructura de datos proporciona Java para almacenar una lista de palabras y sus significados como pares clave / valor?
¿Cómo, dada una clave, puedo encontrar y devolver el valor?
java
dictionary
key-value
usuario1849819
fuente
fuente
Respuestas:
Querrás un
Map<String, String>
. Las clases que implementan laMap
interfaz incluyen (pero no están limitadas a):HashMap
LinkedHashMap
Hashtable
Cada uno está diseñado / optimizado para ciertas situaciones (vaya a sus documentos respectivos para obtener más información).
HashMap
es probablemente el más común; el go-to default.Por ejemplo (usando a
HashMap
):fuente
Map
(verifique el javadoc)Map<String, String> map = new HashMap<>();
Esto crea un diccionario de texto (cadena):
luego lo usas como:
Map<String, String> dictionary = new Map<String, String>();
Esto funciona correctamente
fuente
dictionary["key"]
no funcionará, debería serlodictionary.get("key")
.Utilice la interfaz del mapa y una implementación como HashMap
fuente
Hay un diccionario de clase abstracta
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
Sin embargo, esto requiere implementación.
Java nos da una buena implementación llamada Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
fuente
Dictionary
está obsoleto y ninguna de las implementaciones lo extiende.