10.05.2014 Views

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

SHOW MORE
SHOW LESS

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);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!