
Ejercicios resueltos utilizando Listas
1) Dada una lista de Productos cuyos atributos son: código, descripción, precio, stock, categoría. Hacer un programa que utilice ArrayList para registrar los productos, dado un código reportar los datos del producto, dado un código eliminar el producto de la lista, dada una categoría reportar los productos de esa categoría, y reportar todos los productos ingresados.
import java.util.Objects;
public class Producto {
private String codigo;
private String descripcion;
private double precio;
private int stock;
private String categoria;
public Producto(){
}
public Producto(String codigo){
this.codigo = codigo;
}
public Producto(String codigo, String descripcion, double precio,
int stock, String categoria){
this.codigo = codigo;
this.descripcion = descripcion;
this.precio = precio;
this.stock = stock;
this.categoria = categoria;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
@Override
public String toString() {
return «Producto: » + «codigo = » + codigo + «, descripcion = » + descripcion
+ «, precio = » + precio + «, stock = » + stock + «, categoria = » + categoria;
}
@Override
public int hashCode() {
int hash = 5;
hash = 53 * hash + Objects.hashCode(this.codigo);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Producto other = (Producto) obj;
if (!Objects.equals(this.codigo, other.codigo)) {
return false;
}
return true;
}
}
import java.util.*;
public class AplicacionListaProductos {
private ArrayList<Producto> listaProductos;
public static void main(String[] args) {
AplicacionListaProductos aplicacionListaProductos = new AplicacionListaProductos();
aplicacionListaProductos.listaProductos = new ArrayList();
aplicacionListaProductos.leerOpcion();
}
public void leerOpcion(){
Scanner entrada = new Scanner(System.in);
int opcion;
do{
System.out.println(«\nLista de Productos»);
System.out.println(«[1] Agregar producto»);
System.out.println(«[2] Buscar producto por codigo»);
System.out.println(«[3] Buscar producto por categoria»);
System.out.println(«[4] Eliminar producto»);
System.out.println(«[5] Mostrar productos»);
System.out.println(«[6] Salir\n»);
System.out.print(«Ingresar opcion(1-6): «);
opcion = entrada.nextInt();
switch(opcion)
{
case 1:
ingresarProducto();
break;
case 2:
buscarProductoCodigo();
break;
case 3:
buscarProductoCategoria();
break;
case 4:
eliminarProducto();
break;
case 5:
mostrarProductos();
break;
}
}while(opcion!=6);
}
public void ingresarProducto(){
String codigo, descripcion, categoria, respuesta;
double precio;
int stock;
Scanner entrada = new Scanner(System.in);
int i=0;
do{
System.out.println(«\nProducto» + i);
System.out.print(«Ingresar codigo: «);
codigo = entrada.next();
System.out.print(«Ingresar descripcion: «);
descripcion = entrada.next();
System.out.print(«Ingresar precio: «);
precio = entrada.nextDouble();
System.out.print(«Ingresar stock: «);
stock = entrada.nextInt();
System.out.print(«Ingresar categoria: «);
categoria = entrada.next();
Producto producto = new Producto(codigo,descripcion,precio,stock,categoria);
listaProductos.add(producto);
System.out.print(«Desea ingresar nuevo producto(S/N): «);
respuesta = entrada.next();
i++;
}while(respuesta.equals(«S»));
}
public void buscarProductoCodigo(){
String codigo;
int indice;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar codigo a buscar: «);
codigo = entrada.next();
Producto producto = new Producto(codigo);
indice = listaProductos.indexOf(producto);
if(indice!=-1){
producto = listaProductos.get(indice);
System.out.println(producto);
}
else
System.out.println(«El producto no se encuentra»);
}
public void buscarProductoCategoria(){
String categoria;
Producto producto;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar categoria a buscar: «);
categoria = entrada.next();
for(int i=0;i<listaProductos.size();i++){
producto = listaProductos.get(i);
if(producto.getCategoria().equals(categoria))
System.out.println(producto);
else
System.out.println(«El producto no esta registrado»);
}
}
public void eliminarProducto(){
String codigo;
int indice;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar codigo para eliminar: «);
codigo = entrada.next();
Producto producto = new Producto(codigo);
indice = listaProductos.indexOf(producto);
if(indice!=-1){
producto = listaProductos.remove(indice);
System.out.println(«Producto eliminado: » + producto);
}
else
System.out.println(«El producto no se encuentra»);
}
public void mostrarProductos(){
if(!listaProductos.isEmpty()){
System.out.println(«Lista de productos: «);
for(Producto producto : listaProductos)
System.out.println(producto);
}
else
System.out.println(«No existen productos en la lista»);
}
}
2) Dada una lista de Alumnos de la Facultad de Ingenieria cuyos atributos son: codigo, apellidos, nombres, carrera, ciclo, promedio. Hacer un programa que utilice ArrayList para registrar los alumnos, dado un código reportar los datos del alumno, dado un código eliminar al alumno de la lista, dado una carrera reportar todos los alumnos de esa carrera y reportar todos los alumnos ingresados. Además reportar todos los alumnos aprobados y desaprobados.
import java.util.Objects;
public class Alumno {
private String codigo;
private String apellidos;
private String nombres;
private String carrera;
private String ciclo;
private double promedio;
public Alumno(){
}
public Alumno(String codigo){
this.codigo = codigo;
}
public Alumno(String codigo, String apellidos, String nombres,
String carrera, String ciclo, double promedio){
this.codigo = codigo;
this.apellidos = apellidos;
this.nombres = nombres;
this.carrera = carrera;
this.ciclo = ciclo;
this.promedio = promedio;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getNombres() {
return nombres;
}
public void setNombres(String nombres) {
this.nombres = nombres;
}
public String getCarrera() {
return carrera;
}
public void setCarrera(String carrera) {
this.carrera = carrera;
}
public String getCiclo() {
return ciclo;
}
public void setCiclo(String ciclo) {
this.ciclo = ciclo;
}
public double getPromedio() {
return promedio;
}
public void setPromedio(double promedio) {
this.promedio = promedio;
}
@Override
public String toString() {
return «Alumno: » + «codigo = » + codigo + «, apellidos = » + apellidos + «, nombres = » + nombres
+ «, carrera = » + carrera + «, ciclo = » + ciclo + «, promedio = » + promedio;
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.codigo);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Alumno other = (Alumno) obj;
if (!Objects.equals(this.codigo, other.codigo)) {
return false;
}
return true;
}
}
import java.util.*;
public class AplicacionListaAlumnos {
private ArrayList<Alumno> listaAlumnos;
public static void main(String[] args) {
AplicacionListaAlumnos aplicacionListaAlumnos = new AplicacionListaAlumnos();
aplicacionListaAlumnos.listaAlumnos = new ArrayList();
aplicacionListaAlumnos.leerOpcion();
}
public void leerOpcion(){
Scanner entrada = new Scanner(System.in);
int opcion;
do{
System.out.println(«\nLista de Alumnos»);
System.out.println(«[1] Registrar alumno»);
System.out.println(«[2] Buscar alumno por codigo»);
System.out.println(«[3] Buscar alumno por carrera»);
System.out.println(«[4] Eliminar alumno»);
System.out.println(«[5] Mostrar alumnos aprobados»);
System.out.println(«[6] Mostrar alumnos desaprobados»);
System.out.println(«[7] Mostrar alumnos»);
System.out.println(«[8] Salir\n»);
System.out.print(«Ingresar opcion(1-8): «);
opcion = entrada.nextInt();
switch(opcion)
{
case 1:
ingresarAlumno();
break;
case 2:
buscarAlumnoCodigo();
break;
case 3:
buscarAlumnoCarrera();
break;
case 4:
eliminarAlumno();
break;
case 5:
mostrarAlumnosAprobados();
break;
case 6:
mostrarAlumnosDesaprobados();
break;
case 7:
mostrarAlumnos();
break;
}
}while(opcion!=8);
}
public void ingresarAlumno(){
String codigo, apellidos, nombres, carrera, ciclo, respuesta;
double promedio;
Scanner entrada = new Scanner(System.in);
int i=0;
do{
System.out.println(«\nAlumno» + i);
System.out.print(«Ingresar codigo: «);
codigo = entrada.nextLine();
System.out.print(«Ingresar apellidos: «);
apellidos = entrada.nextLine();
System.out.print(«Ingresar nombres: «);
nombres = entrada.nextLine();
System.out.print(«Ingresar carrera: «);
carrera = entrada.nextLine();
System.out.print(«Ingresar ciclo: «);
ciclo = entrada.nextLine();
System.out.print(«Ingresar promedio: «);
promedio = entrada.nextDouble();
entrada.nextLine();
Alumno alumno = new Alumno(codigo,apellidos,nombres,carrera,ciclo,promedio);
listaAlumnos.add(alumno);
System.out.print(«Desea ingresar nuevo alumno(S/N): «);
respuesta = entrada.nextLine();
i++;
}while(respuesta.equals(«S»));
}
public void buscarAlumnoCodigo(){
String codigo;
int indice;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar codigo a buscar: «);
codigo = entrada.next();
Alumno alumno = new Alumno(codigo);
indice = listaAlumnos.indexOf(alumno);
if(indice!=-1){
alumno = listaAlumnos.get(indice);
System.out.println(alumno);
}
else
System.out.println(«El alumno no se encuentra»);
}
public void buscarAlumnoCarrera(){
String carrera;
Alumno alumno;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar carrera a buscar: «);
carrera = entrada.next();
for(int i=0;i<listaAlumnos.size();i++){
alumno = listaAlumnos.get(i);
if(alumno.getCarrera().equals(carrera))
System.out.println(alumno);
else
System.out.println(«El alumno no se encuentra»);
}
}
public void eliminarAlumno(){
String codigo;
int indice;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar codigo para eliminar: «);
codigo = entrada.next();
Alumno alumno = new Alumno(codigo);
indice = listaAlumnos.indexOf(alumno);
if(indice!=-1){
alumno = listaAlumnos.remove(indice);
System.out.println(«Alumno eliminado: » + alumno);
}
else
System.out.println(«El alumno no se encuentra»);
}
public void mostrarAlumnosAprobados(){
Alumno alumno;
double promedio;
for(int i=0;i<listaAlumnos.size();i++){
alumno = listaAlumnos.get(i);
promedio = alumno.getPromedio();
if(promedio>=10.5)
System.out.println(alumno);
else
System.out.println(«No hay alumnos aprobados»);
}
}
public void mostrarAlumnosDesaprobados(){
Alumno alumno;
double promedio;
for(int i=0;i<listaAlumnos.size();i++){
alumno = listaAlumnos.get(i);
promedio = alumno.getPromedio();
if(promedio<10.5)
System.out.println(alumno);
else
System.out.println(«No hay alumnos desaprobados»);
}
}
public void mostrarAlumnos(){
if(!listaAlumnos.isEmpty()){
System.out.println(«Lista de alumnos: «);
for(Alumno alumno : listaAlumnos)
System.out.println(alumno);
}
else
System.out.println(«No existen alumnos en la lista»);
}
}
3) Crear una Agenda cuyos atributos son: nombre, dirección, teléfono, correo, fecha de nacimiento. Hacer un programa que utilice ArrayList para registrar los contactos, dado un nombre reportar los datos del contacto y reportar todos los contactos ingresados. Además, dada una fecha de nacimiento reportar aquellos contactos que cumplen años esa fecha.
import java.util.Objects;
public class Agenda {
private String nombre;
private String direccion;
private String telefono;
private String correo;
private String fechaNacimiento;
public Agenda(){
}
public Agenda(String nombre){
this.nombre = nombre;
}
public Agenda(String nombre, String direccion, String telefono, String correo,
String fechaNacimiento){
this.nombre = nombre;
this.direccion = direccion;
this.telefono = telefono;
this.correo = correo;
this.fechaNacimiento = fechaNacimiento;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getCorreo() {
return correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public String getFechaNacimiento() {
return fechaNacimiento;
}
public void setFechaNacimiento(String fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}
@Override
public String toString() {
return «Agenda: » + «nombre = » + nombre + «, direccion = » + direccion + «, telefono = »
+ telefono + «, correo = » + correo + «, fechaNacimiento = » + fechaNacimiento;
}
@Override
public int hashCode() {
int hash = 7;
hash = 71 * hash + Objects.hashCode(this.nombre);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Agenda other = (Agenda) obj;
if (!Objects.equals(this.nombre, other.nombre)) {
return false;
}
return true;
}
}
import java.util.*;
public class AplicacionAgenda {
private ArrayList<Agenda> listaContactos;
public static void main(String[] args) {
AplicacionAgenda aplicacionAgenda = new AplicacionAgenda();
aplicacionAgenda.listaContactos = new ArrayList();
aplicacionAgenda.leerOpcion();
}
public void leerOpcion(){
Scanner entrada = new Scanner(System.in);
int opcion;
do{
System.out.println(«\nLista de Contactos»);
System.out.println(«[1] Registrar contacto»);
System.out.println(«[2] Buscar contacto por nombre»);
System.out.println(«[3] Buscar contacto por fecha de nacimiento»);
System.out.println(«[4] Mostrar contactos»);
System.out.println(«[5] Salir\n»);
System.out.print(«Ingresar opcion(1-5): «);
opcion = entrada.nextInt();
switch(opcion)
{
case 1:
ingresarContacto();
break;
case 2:
buscarContactoNombre();
break;
case 3:
buscarContactoFecha();
break;
case 4:
mostrarContactos();
break;
}
}while(opcion!=5);
}
public void ingresarContacto(){
String nombre, direccion, telefono, correo,
fechaNacimiento, respuesta;
Scanner entrada = new Scanner(System.in);
int i=0;
do{
System.out.println(«\nContacto» + i);
System.out.print(«Ingresar nombre: «);
nombre = entrada.next();
entrada.nextLine();
System.out.print(«Ingresar direccion: «);
direccion = entrada.nextLine();
System.out.print(«Ingresar telefono: «);
telefono = entrada.next();
entrada.nextLine();
System.out.print(«Ingresar correo: «);
correo = entrada.next();
System.out.print(«Ingresar fecha de nacimiento: «);
fechaNacimiento = entrada.next();
Agenda agenda = new Agenda(nombre,direccion,telefono,correo,fechaNacimiento);
listaContactos.add(agenda);
System.out.print(«Desea ingresar nuevo contacto(S/N): «);
respuesta = entrada.next();
i++;
}while(respuesta.equals(«S»));
}
public void buscarContactoNombre(){
String nombre;
int indice;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar nombre a buscar: «);
nombre = entrada.next();
Agenda agenda = new Agenda(nombre);
indice = listaContactos.indexOf(agenda);
if(indice!=-1){
agenda = listaContactos.get(indice);
System.out.println(agenda);
}
else
System.out.println(«El contacto no se encuentra»);
}
public void buscarContactoFecha(){
String fechaNacimiento;
Agenda agenda;
Scanner entrada = new Scanner(System.in);
System.out.print(«Ingresar fecha de nacimiento: «);
fechaNacimiento = entrada.next();
for(int i=0;i<listaContactos.size();i++){
agenda = listaContactos.get(i);
if(agenda.getFechaNacimiento().equals(fechaNacimiento))
System.out.println(agenda);
else
System.out.println(«No hay ningún contacto que cumple años»);
}
}
public void mostrarContactos(){
if(!listaContactos.isEmpty()){
System.out.println(«Lista de contactos: «);
for(Agenda contacto : listaContactos)
System.out.println(contacto);
}
else
System.out.println(«No hay contactos en la lista»);
}
}