La clase ListaLugares
Ejercicio: La clase LugaresLista
En este ejercicio vamos a crear la clase LugaresLista que tiene como finalidad almacenar y gestionar un conjunto de objetos Lugar dentro de una lista.
1. Dentro del paquete org.example.mislugares
añade la clase LugaresLista, y reemplaza el código por el siguiente:
public class LugaresLista implements RepositorioLugares { protected ListlistaLugares; public LugaresLista() { listaLugares = new ArrayList<>(); añadeEjemplos(); } public Lugar elemento(int id) { return listaLugares.get(id); } public void añade(Lugar lugar) { listaLugares.add(lugar); } public int nuevo() { Lugar lugar = new Lugar(); listaLugares.add(lugar); return listaLugares.size()-1; } public void borrar(int id) { listaLugares.remove(id); } public int tamaño() { return listaLugares.size(); } public void actualiza(int id, Lugar lugar) { listaLugares.set(id, lugar); } public void añadeEjemplos() { añade(new Lugar("Escuela Politécnica Superior de Gandía", "C/ Paranimf, 1 46730 Gandia (SPAIN)", -0.166093, 38.995656, TipoLugar.EDUCACION, 962849300, "http://www.epsg.upv.es", "Uno de los mejores lugares para formarse.", 3)); añade(new Lugar("Al de siempre", "P.Industrial Junto Molí Nou - 46722, Benifla (Valencia)", -0.190642, 38.925857, TipoLugar.BAR, 636472405, "", "No te pierdas el arroz en calabaza.", 3)); añade(new Lugar("androidcurso.com", "ciberespacio", 0.0, 0.0, TipoLugar.EDUCACION, 962849300, "http://androidcurso.com", "Amplia tus conocimientos sobre Android.", 5)); añade(new Lugar("Barranco del Infierno", "Vía Verde del río Serpis. Villalonga (Valencia)", -0.295058, 38.867180, TipoLugar.NATURALEZA, 0, "http://sosegaos.blogspot.com.es/2009/02/lorcha-villalonga-via-"+ "verde-del-rio.html","Espectacular ruta para bici o andar", 4)); añade(new Lugar("La Vital", "Avda. de La Vital, 0 46701 Gandía (Valencia)", -0.1720092, 38.9705949, TipoLugar.COMPRAS, 962881070, "http://www.lavital.es/", "El típico centro comercial", 2)); } }
class LugaresLista : RepositorioLugares { val listaLugares= mutableListOf<Lugar>() override fun elemento(id: Int): Lugar { return listaLugares[id] } override fun añade(lugar: Lugar) { listaLugares.add(lugar) } override fun nuevo(): Int { val lugar = Lugar("Nuevo lugar") listaLugares.add(lugar) return listaLugares.size - 1 } override fun borrar(id: Int) { listaLugares.removeAt(id) } override fun tamaño(): Int { return listaLugares.size } override fun actualiza(id: Int, lugar: Lugar) { listaLugares[id] = lugar } }
2. Pulsa Alt-Intro e para que se añadan los import de las clases utilizadas.
import java.util.ArrayList;
import java.util.List;
3. Para Java Añade la siguiente sobrecarga al constructor a la clase Lugar:
public Lugar() {
fecha = System.currentTimeMillis();
posicion = GeoPunto.(0.0, 0.0);
tipo = TipoLugar.OTROS;
}
Esto nos permitirá crear un nuevo lugar sin indicar sus atributos.
4. Abre la clase Principal y reemplaza el código del método main() por:
RepositorioLugares lugares = new LugaresLista(); for (int i=0; i<lugares.tamaño(); i++) { System.out.println(lugares.elemento(i).toString()); }
5. Verifica que el resultado es similar al siguiente: