La clase StringMap
Un objeto de la clase StringMap es un arreglo asociativo. Permite asociar
valores a strings. Para realizar una asociación se invoca el método put.
Por ejemplo:
StringMap tab= new StringMap();
tab.put("Juan", 1.75);
La primera instrucción crea un arreglo asociativo con llaves de tipo String.
La segunda establece una asociación entre el valor 1.75 con la llave "Juan".
El primer argumento de put es siempre la llave y debe ser un string.
El segundo argumento es un valor de cualquier tipo (int, double, String
o boolean).
En cualquier momento se puede recuperar el valor asociado a una
llave con los métodos getTipo(llave). Por ejemplo:
println( tab.getDouble("Juan") );
Despliega el real 1.75. El tipo pedido (en este caso double) debe
coincidir con el tipo del valor en el momento de establecer la
asociación con put.
Enumerador
El método tab.keys() obtiene un enumerador (o iterador) para el arreglo
tab. El enumerador permite visitar todas las llaves que posean algún
valor asociado en el arreglo. Utilice el siguiente patrón para visitar
las llaves:
StringKeyEnum enum= tab.keys();
while (enum.hasMoreKeys()) {
String k= enum.nextKey();
...
... tab.getInt(k) ... // por ejemplo
}
El código anterior realizará una iteración por cada llave en el arreglo.
Si el arreglo tiene valores para las llaves "Juan", "Pedro", "Diego",
... los valores que tomará la variable k en cada iteración serán "Juan",
"Pedro", "Diego", ... etc. El orden en que se visitarán las llaves no
esta especificado (puede ser cualquiera). Sólo se garantiza que todas
las llaves serán visitadas una y sólo una vez.
Paquete
Para hacer uso de esta clase es necesario incluir al
inicio del programa la siguiente línea:
import tools.*;
Constructor
Métodos
- void put(String k, int val): establece una asociación entre la
llave k y el valor entero val.
- void put(String k, double val): establece una asociación entre la
llave k y el valor real val.
- void put(String k, String s): establece una asociación entre la
llave k y el string s.
- void put(String k, double b): establece una asociación entre la
llave k y el valor booleano b.
- int getInt(String k): recupera el valor entero asociado con la llave k.
Se produce un error en tiempo de ejecución si k no tiene valor asociado
o el valor asociado no es de tipo int.
- int getDouble(String k): recupera el valor real asociado con la llave k.
Se produce un error en tiempo de ejecución si k no tiene valor asociado
o el tipo del valor asociado no es double ni int.
- int getString(String k): recupera el string asociado con la llave k.
Se produce un error en tiempo de ejecución si k no tiene valor asociado
o el valor asociado no es de tipo String.
- int getInt(String k): recupera el valor booleano asociado con la llave k.
Se produce un error en tiempo de ejecución si k no tiene valor asociado
o el valor asociado no es de tipo boolean.
- StringKeyEnum keys(): entrega un enumerador para visitar las llaves que
poseen algún valor asociado en el arreglo.
- int size(): entrega el número asociaciones establecidas en el arreglo.
- boolean isMapped(String k): entrega verdadero si la llave k posee algún
valor asociado. Falso en caso contrario.
- void remove(String k): elimina cualquier asociación existente para
la llave k.
- boolean isInt(String k): entrega verdadero si existe un valor asociado
a la llave k y es de tipo int. Falso en caso contrario.
- boolean isDouble(String k): entrega verdadero si existe un valor
asociado a la llave k y es de tipo double o int. Falso en caso
contrario.
- boolean isString(String k): entrega verdadero si existe un valor
asociado a la llave k y es de tipo String. Falso en caso contrario.
- boolean isBoolean(String k): entrega verdadero si existe un valor
asociado a la llave k y es de tipo boolean. Falso en caso contrario.