actualización para actuvidad 3.2

This commit is contained in:
Isidoro Nevares Martín 2026-03-03 14:58:21 +01:00
parent d50346156e
commit 9daa39294a
4 changed files with 176 additions and 113 deletions

View File

@ -23,30 +23,45 @@ public class AppConcesionario {
public static void main(String[] args) { public static void main(String[] args) {
AppConcesionario app = new AppConcesionario(); AppConcesionario app = new AppConcesionario();
app.inicializar();
app.consultarCoches(); // Consulta inicial de coches
app.consultarCoches("INICIAL");
// Consulta por ID
app.consultarPorId(3); app.consultarPorId(3);
// Alta de un nuevo coche
app.altaCoche(); app.altaCoche();
// Actualización de un coche existente
app.actualizarCoche(); app.actualizarCoche();
// Borrado de un coche por ID
app.borrarCoche(2); app.borrarCoche(2);
app.consultarCoches();
// Consulta de coches por "marca"
app.consultarCochesMarca("Seat");
// Consulta final de coches
app.consultarCoches("FINAL");
} }
private void inicializar() { public AppConcesionario() {
iCocheDAO = new CocheDaoArray(); iCocheDAO = new CocheDaoArray();
} }
private void consultarCoches() { private void consultarCoches(String momento) {
try { try {
List<Coche> listaCoches = iCocheDAO.obtenerListaCoches(); List<Coche> listaCoches = iCocheDAO.obtenerListaCoches();
System.out.println("#########################################"); System.out.println("#########################################");
System.out.println("LISTADO DE COCHES"); System.out.println("LISTADO DE COCHES " + momento);
System.out.println("#########################################"); System.out.println("#########################################");
for (Coche coche : listaCoches) { for (Coche coche : listaCoches) {
System.out.println(coche); System.out.println(coche);
} }
System.out.println("-------------------------------------------------\n\n");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -56,7 +71,7 @@ public class AppConcesionario {
private void consultarPorId(int id) { private void consultarPorId(int id) {
System.out.println("#########################################"); System.out.println("#########################################");
System.out.println("CONSULTA POR ID: " + id); System.out.println("CONSULTA POR ID: " + id);
System.out.println("#########################################"); System.out.println("#########################################\n");
Coche coche = iCocheDAO.obtenerCochePorID(id); Coche coche = iCocheDAO.obtenerCochePorID(id);
@ -65,37 +80,45 @@ public class AppConcesionario {
} else { } else {
System.out.println("No existe coche con id " + id); System.out.println("No existe coche con id " + id);
} }
System.out.println("-------------------------------------------------\n\n");
} }
private void altaCoche() { private void altaCoche() {
System.out.println("#########################################"); System.out.println("#########################################");
System.out.println("ALTA DE COCHE"); System.out.println("ALTA DE COCHE");
System.out.println("#########################################"); System.out.println("#########################################\n");
Coche nuevo = new Coche(8, "Toyota", "Corolla", 1.8); Coche cocheNuevo = new Coche();
iCocheDAO.crearCoche(nuevo); cocheNuevo.setIdentificador(8);
cocheNuevo.setMarca("Wolkswagen");
cocheNuevo.setModelo("Golf");
cocheNuevo.setCilindrada(2.1);
System.out.println("Coche creado: " + nuevo); iCocheDAO.crearCoche(cocheNuevo);
System.out.println("Coche creado: " + cocheNuevo);
System.out.println("-------------------------------------------------\n\n");
} }
private void actualizarCoche() { private void actualizarCoche() {
System.out.println("ACTUALIZAR COCHE"); System.out.println("ACTUALIZAR COCHE");
System.out.println("#########################################"); System.out.println("#########################################\n");
Coche cocheActualizado = new Coche(1, "Renault", "Megane RS", 2.0); Coche coche = new Coche(1, "Renault", "Megane RS", 2.0);
Coche resultado = iCocheDAO.actualizarCoche(cocheActualizado); Coche cocheActualizado = iCocheDAO.actualizarCoche(coche);
if (resultado != null) { if (cocheActualizado != null) {
System.out.println("Coche actualizado: " + resultado); System.out.println("Coche actualizado: " + cocheActualizado);
} else { } else {
System.out.println("No se encontró el coche para actualizar"); System.out.println("No se encontró el coche para actualizar");
} }
System.out.println("-------------------------------------------------\n\n");
} }
private void borrarCoche(int id) { private void borrarCoche(int id) {
System.out.println("#########################################"); System.out.println("#########################################");
System.out.println("BORRAR COCHE ID: " + id); System.out.println("BORRAR COCHE ID: " + id);
System.out.println("#########################################"); System.out.println("#########################################\n");
Coche coche = iCocheDAO.obtenerCochePorID(id); Coche coche = iCocheDAO.obtenerCochePorID(id);
@ -105,6 +128,24 @@ public class AppConcesionario {
} else { } else {
System.out.println("No existe coche con id " + id); System.out.println("No existe coche con id " + id);
} }
System.out.println("-------------------------------------------------\n\n");
}
/**
* @param string
*/
private void consultarCochesMarca(String marca) {
System.out.println("#########################################");
System.out.println("CONSULTA POR Marca: " + marca);
System.out.println("#########################################\n");
List<Coche> listaCoches = iCocheDAO.obtenerCochePorMarca(marca);
for (Coche coche : listaCoches) {
System.out.println(coche);
}
System.out.println("-------------------------------------------------\n\n");
} }
} }

View File

@ -10,5 +10,5 @@ public interface ICocheDAO {
public Coche crearCoche(Coche coche); public Coche crearCoche(Coche coche);
public void borrarCoche(Coche coche); public void borrarCoche(Coche coche);
public List<Coche> obtenerListaCoches(); public List<Coche> obtenerListaCoches();
public List<Coche> obtenerCochePorModelo(String modelo); public List<Coche> obtenerCochePorMarca(String marca);
} }

View File

@ -2,73 +2,83 @@ package org.lapaloma.concesionario.dao.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.lapaloma.concesionario.dao.ICocheDAO; import org.lapaloma.concesionario.dao.ICocheDAO;
import org.lapaloma.concesionario.vo.Coche; import org.lapaloma.concesionario.vo.Coche;
public class CocheDaoArray implements ICocheDAO { public class CocheDaoArray implements ICocheDAO {
private List<Coche> listaCoches; private List<Coche> listaCoches;
public CocheDaoArray() { public CocheDaoArray() {
listaCoches = new ArrayList<>(); listaCoches = new ArrayList<>();
// Simulamos los inserts de la base de datos // Simulamos los inserts de la base de datos
listaCoches.add(new Coche(1, "Renault", "Megane", 1.5)); listaCoches.add(new Coche(1, "Renault", "Megane", 1.5));
listaCoches.add(new Coche(2, "Seat", "León", 1.6)); listaCoches.add(new Coche(2, "Seat", "León", 1.6));
listaCoches.add(new Coche(3, "Suzuki", "Vitara", 1.9)); listaCoches.add(new Coche(3, "Suzuki", "Vitara", 1.9));
listaCoches.add(new Coche(4, "Seat", "Clio", 1.4)); listaCoches.add(new Coche(4, "Seat", "Clio", 1.4));
listaCoches.add(new Coche(5, "Seat", "Ibiza", 1.4)); listaCoches.add(new Coche(5, "Seat", "Ibiza", 1.4));
listaCoches.add(new Coche(6, "Peugeot", "308", 2.0)); listaCoches.add(new Coche(6, "Peugeot", "308", 2.0));
listaCoches.add(new Coche(7, "Renault", "Megane", 1.5)); listaCoches.add(new Coche(7, "Renault", "Megane", 1.5));
} }
@Override @Override
public Coche obtenerCochePorID(int identificador) { public Coche obtenerCochePorID(int identificador) {
Coche coche = null; Coche coche = null;
for (Coche cocheLista : listaCoches) { for (Coche cocheLista : listaCoches) {
if (cocheLista.getIdentificador() == identificador) { if (cocheLista.getIdentificador() == identificador) {
coche = cocheLista; coche = cocheLista;
break; break;
} }
} }
return coche; return coche;
} }
@Override @Override
public Coche actualizarCoche(Coche coche) { public Coche actualizarCoche(Coche coche) {
Coche cocheActualizado = null; Coche cocheActualizado = null;
for (int i = 0; i < listaCoches.size(); i++) { for (int i = 0; i < listaCoches.size(); i++) {
Coche cocheLista= listaCoches.get(i); Coche cocheLista = listaCoches.get(i);
if (cocheLista.getIdentificador() == coche.getIdentificador()) { if (cocheLista.getIdentificador() == coche.getIdentificador()) {
listaCoches.set(i, coche); listaCoches.set(i, coche);
cocheActualizado = coche; cocheActualizado = coche;
break; break;
} }
} }
return cocheActualizado; // no encontrado return cocheActualizado; // no encontrado
} }
@Override @Override
public Coche crearCoche(Coche coche) { public Coche crearCoche(Coche coche) {
listaCoches.add(coche); listaCoches.add(coche);
return coche; return coche;
} }
@Override @Override
public void borrarCoche(Coche coche) { public void borrarCoche(Coche coche) {
listaCoches.removeIf(c -> c.getIdentificador() == coche.getIdentificador()); listaCoches.removeIf(c -> c.getIdentificador() == coche.getIdentificador());
} }
@Override @Override
public List<Coche> obtenerListaCoches() { public List<Coche> obtenerListaCoches() {
return new ArrayList<>(listaCoches); // devolvemos copia return new ArrayList<>(listaCoches); // devolvemos copia
} }
@Override @Override
public List<Coche> obtenerCochePorModelo(String modelo) { public List<Coche> obtenerCochePorMarca(String marca) {
return listaCoches.stream().filter(c -> c.getModelo().equalsIgnoreCase(modelo)).collect(Collectors.toList()); List<Coche> listaCochesMarca= null;
}
for (Coche coche : listaCoches) {
if (coche.getMarca().equalsIgnoreCase(marca)) {
if (listaCochesMarca == null) {
listaCochesMarca = new ArrayList<>();
}
listaCochesMarca.add(coche);
}
}
return listaCochesMarca;
}
} }

View File

@ -5,51 +5,63 @@ package org.lapaloma.concesionario.vo;
* Coche: Clase de persistencia que representa un coche de un concesionario. * Coche: Clase de persistencia que representa un coche de un concesionario.
* *
* @author Isidoro Nevares Martín - IES Virgen de la Paloma * @author Isidoro Nevares Martín - IES Virgen de la Paloma
* @date 4 dic 2025 * @date 03 marzo 2026
* *
* *
*/ */
public class Coche { public class Coche {
private int identificador; private int identificador;
private String marca; private String marca;
private String modelo; private String modelo;
private double cilindrada; private double cilindrada;
public Coche(int identificador, String marca, String modelo, double cilindrada) {
super();
this.identificador = identificador;
this.marca = marca;
this.modelo = modelo;
this.cilindrada = cilindrada;
}
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public double getCilindrada() {
return cilindrada;
}
public void setCilindrada(double cilindrada) {
this.cilindrada = cilindrada;
}
@Override
public String toString() {
return "Coche [identificador=" + identificador + ", marca=" + marca + ", modelo=" + modelo + ", cilindrada="
+ cilindrada + "]";
}
public Coche(int identificador, String marca, String modelo, double cilindrada) {
super();
this.identificador = identificador;
this.marca = marca;
this.modelo = modelo;
this.cilindrada = cilindrada;
}
public Coche() {
super();
}
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public double getCilindrada() {
return cilindrada;
}
public void setCilindrada(double cilindrada) {
this.cilindrada = cilindrada;
}
@Override
public String toString() {
return "Coche [identificador=" + identificador + ", marca=" + marca + ", modelo=" + modelo + ", cilindrada="
+ cilindrada + "]";
}
} }