programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
124 Programación I<br />
}<br />
}<br />
public void agregarPersona( String nombre, int telefono) {<br />
agenda.put(nombre,telefono);<br />
}<br />
public int darTelefonoDe(String unNombre) {<br />
// el método get, si no esta el dato buscado, devuelve null<br />
return agenda.get(unNombre);<br />
}<br />
public Iterator darNombres() {<br />
return agenda.keySet().iterator();<br />
}<br />
public Iterator darTelefonos() {<br />
return agenda.values().iterator();<br />
}<br />
public boolean estaElNombre(String unNombre) {<br />
return agenda.containsKey(unNombre);<br />
}<br />
public boolean estaElTelefono(int unNúmero) {<br />
return agenda.containsValue(unNúmero);<br />
}<br />
public void sacarTelefonoDe(String unNombre) {<br />
agenda.remove(unNombre);<br />
}<br />
public void cambiarTelefonoDe(String unNombre, int nuevo) {<br />
agenda.put(unNombre,nuevo);<br />
}<br />
}<br />
13.3 Wrapper Classes y Boxing<br />
En un hashmap, el par clave y valor deben ser objetos. Los tipos primitivos (int, boolean, etc)<br />
son solamente valores. No tengo métodos en ellos, no son objetos. En las versiones anteriores a<br />
Java 5 se aplican las wrapper classes (wrapper: envolver, funda, cubierta) que son clases que<br />
corresponden a los tipos primitivos. Encapsulan un tipo primitivo dentro.<br />
Así, en versiones anteriores de Java, para agregar un int a un ArraList, debía "envolverlo" como<br />
un objeto. Siendo lista un ArrayList ya definido, para agregar un entero se escribe:<br />
lista.add(new Integer(2));<br />
Java, por eficiencia, representa los tipos simples de forma diferente. No es orientada a objetos y<br />
los pone fuera de la jerarquía. Muchas veces se necesita sacrificar eficiencia por flexibilidad, y<br />
por esta razón se crearon clases estándar que permiten integrar esos tipos simples en la<br />
jerarquía. Esas son las wrapper classes. Están agrupadas bajo Number y tengo métodos:<br />
intValue, doubleValue, etc. Están en java.lang. A partir de la versión Java 1.5, se hace el<br />
wrapper en forma automática (autoboxing). Si quiero poner un entero, acepta que lo escriba<br />
directamente. Ejemplo: considerando la lista anterior, se puede escribir:<br />
lista.add(2);