La clase Map
Un objeto de la clase Map es un arreglo asociativo. Permite asociar
valores a números enteros. Para realizar una asociación
se invoca el método put. Por ejemplo:
Map tab= new Map();
tab.put(5, "Hola");
La primera instrucción crea un arreglo asociativo con llaves enteras.
La segunda establece una asociación entre el valor "Hola" con la llave 5.
El primer argumento de put es siempre la llave y debe ser un entero.
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.getString(5) );
Despliega el string "Hola". El tipo pedido (en este caso String) 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:
KeyEnum enum= tab.keys();
while (enum.hasMoreKeys()) {
int 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 4, 7, 20, ... los valores
que tomará la variable k en cada iteración serán 4, 7, 20, ... 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(int k, int val): establece una asociación entre la
llave k y el valor entero val.
- void put(int k, double val): establece una asociación entre la
llave k y el valor real val.
- void put(int k, String s): establece una asociación entre la
llave k y el string s.
- void put(int k, double b): establece una asociación entre la
llave k y el valor booleano b.
- int getInt(int 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.
- double getDouble(int 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.
- String getString(int 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.
- boolean getBoolean(int 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.
- KeyEnum 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(int k): entrega verdadero si la llave k posee algún
valor asociado. Falso en caso contrario.
- void remove(int k): elimina cualquier asociación existente para
la llave k.
- boolean isInt(int k): entrega verdadero si existe un valor asociado a la
llave k y es de tipo int. Falso en caso contrario.
- boolean isDouble(int 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(int k): entrega verdadero si existe un valor asociado a la
llave k y es de tipo String. Falso en caso contrario.
- boolean isBoolean(int k): entrega verdadero si existe un valor asociado a la
llave k y es de tipo boolean. Falso en caso contrario.