Autor Tema: java programa gestión eventos actividad ejercicio resuelto paso a paso ArrayList  (Leído 7019 veces)

deank23

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
Re: java programa gestión eventos actividad ejercicio resuelto paso a paso Array
« Respuesta #20 en: 30 de Noviembre 2020, 19:42 »
Amigo muchas gracias por ayudarme con este programa ya que no sabía ni tenía idea de come hacerlo 😃


« Última modificación: 01 de Abril 2021, 12:07 por Ogramar »

deank23

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
Re: java ayuda con este programa
« Respuesta #21 en: 30 de Noviembre 2020, 21:07 »
Una pregunta, ¿por qué se usa el método burbuja ?
« Última modificación: 01 de Abril 2021, 11:42 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 985
    • Ver Perfil
Re: java ayuda con este programa método de ordenación de la burbuja
« Respuesta #22 en: 30 de Noviembre 2020, 22:54 »
Método de ordenación burbuja

Es un algoritmo para ordenar una colección de datos.

Por eso puse enlace de Wikipedia, que seguro explican mejor que yo.

Lo que hace es recorrer varias veces la colección de datos, comparando cada elemento con el siguiente para decidir si hay que intercambiar posiciones para dejarlo ordenado.

Esta imagen representa el proceso de ordenación:


El método de la Burbuja es algo que todo programador debe conocer, como mínimo saber que existe y para qué se usa.

Luego, como ya dije, en Java las clases Arrays, ArrayList, etc.. tienen un método que ordenan automáticamente las colecciones de datos, siempre que esos datos implementen la interfaz Comparable y se le haya escrito correctamente el método compareTo().
Pero el método de la Burbuja hay que conocerlo, y muy probablemente algún día te lo pidan en una prueba de examen.


Terminación del ejercicio

Última funcionalidad que queda por activar: Consultar las Actividades de un Expositor.

Habrá que pedir al usuario un nombre de Expositor y recorrer los EVentos en busca de Actividades donde el EXpositor coincida con el nombre que nos da el usuario.

Para esto lo primero será proporcionar a la clase Evento un método que reciba el nombre de Expositor y consulte sus "salones" a ver si hay Actividades para ese Expositor.
Las Actividades que encuentre (pueden ser más de una) lo que haremos será recoger sus nombres y retornarlas en un String.

A Evento, le escribimos este método:
Código: [Seleccionar]
/*
* Retorna una lista de las Actividades que expone
* el expositor especificado por parámetros.
*/
public String actividadesExpositor(String expositor) {

String actividades = "";

for (Actividad activ: salones)
if (activ != null) //Si el salon tiene una Actividad...
if (activ.getExpositor().equals(expositor))//Y su Expositor coincide con el que consultan..
actividades += "- " + activ.getNombre() + "\n"; //Listamos el nombre de la Actividad

return actividades;
}

Luego, en MenuEventos, le escribimos el método donde pedimos nombre al usuario y recorremos los Eventos en busca de Actividades.
Si se encuentran, se irá mostrando el String que retornan con las listas de Actividades donde ese Expositor va a exponer.

Si no se encuentra ninguna, cosa que vamos a controlar con un boolean, informaremos al usuario.

Código: [Seleccionar]
private static void consultarActividadesExpositor() {
//Pedimos nombre del expositor
System.out.print("Nombre del Expositor: ");
String expositor = teclado.nextLine();

boolean actividadesEncontradas = false; //Para controlar si se encontró alguna Actividad

//Consultamos los Eventos
for (Evento event: eventos) {
String actividades = event.actividadesExpositor(expositor);
if (!actividades.isEmpty()) { //El String retornado NO está vacío, se han encontrado Actividades
actividadesEncontradas = true;
System.out.println("\nEVENTO: " + event.getNombre());
System.out.println("ACTIVIDADES donde expone:");
System.out.println(actividades);
}
}
//Tras recorrer todos los eventos, si NO se han encontrado Actividades, informamos
if (!actividadesEncontradas)
System.out.println("\nNo se han encontrado ACTIVIDADES para el Expositor: "  + expositor);
}

Y en el SWITCH activamos este método, y listo programa terminado.

Citar
         switch(opcion) {
         case "0":
            System.out.println("\n\t\t--FIN DE PROGRAMA--");
            break;
         case "1":
            crearEvento();
            break;
         case "2":
            crearActividad();
            break;
         case "3":
            mostrarActividadMayor();
            break;
         case "4":
            mostrarActividadMenor();
            break;
         case "5":
            mostrarTotalParticipantesEvento();
            break;
         case "6":
            mostrarActividadesMayorMenor();
            break;
         case "7":
            consultarActividadesExpositor();
            break;
         case "8":
            mostrarActividadesEvento();
            break;
         default:
            System.out.println("\nOpción no válida...");
         }

Espero que haya servido para que se entienda la lógica de programación que se ha seguido, para conocer un poco mejor el lenguaje Java, etc...

También importante darse cuenta de que no es necesario resolver un programa al 100% de una tacada.

Se puede ir paso a paso, objetivo por objetivo.

Cualquier duda, por favor, preguntadla aquí en el foro.

Un saludo.



CÓDIGO COMPLETO


Código de la clase Actividad.java

Código: [Seleccionar]
package actividadesYeventos;

public class Actividad implements Comparable<Actividad>{

private String nombre;
private String expositor;//Persona que expone
private String hora;
private int participantes;

/*
* Constructor sin parámetros. Con esto nos aseguramos de que al construir
* un objeto Actividad, no tendremos atributos con valor null
*/
public Actividad() {
nombre = "";
expositor = "";
hora = "";
participantes = 0;
}

/*
* Constructor con parámetros. El objeto se construye recibiendo los valores
* que vamos a asignar a los atributos.
*/
public Actividad(String nombreActiv, String nombreExpos, String horaActiv, int numParticipan) {
nombre = nombreActiv;
expositor = nombreExpos;
hora = horaActiv;
participantes = numParticipan;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombreActiv) {nombre = nombreActiv;}

public String getExpositor() {return expositor;}

public void setExpositor(String nombreExpos) {expositor = nombreExpos;}

public String getHora() {return hora;}

public void setHora(String horaActiv) {hora = horaActiv;}

public int getParticipantes() {return participantes;}

public void setParticipantes(int numParticipan) {participantes = numParticipan;}

@Override
public String toString() {return "\n\t\t----------------\nNombre de ACTIVIDAD: " + nombre
+ "\nExpositor: " + expositor
+ "\nHora: " +  hora + "\nParticipantes: " + participantes
+ "\n\t\t----------------\n";}

/*
* Este método recibe "otra" Actividad por parámetro para compararse
* con "esta" Actividad.
* La comparación es para determinar una relación ordinal, es decir,
* quien es "menor" y quien es "mayor".
* La Actividad con MENOS participantes se considerará menor que otra
* con MÁS participantes.
*
* Si el objeto recibido tiene valor null, se producirá una excepción.
*/
@Override
public int compareTo(Actividad otraActividad) {//Comparamos sus participantes, para ver quien es menor o mayor, o si son iguales
if (participantes == otraActividad.getParticipantes())
return 0; //Mismo número de participantes, son iguales
else if (participantes < otraActividad.getParticipantes())
return -1; //Esta Actividad es "menor" que la Actividad recibida por parámetro.
else
return 1; //Esta Actividad es "mayor".
}

}
« Última modificación: 01 de Abril 2021, 12:08 por Ogramar »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 985
    • Ver Perfil
java programa gestión eventos actividad ejercicio resuelto paso a paso ArrayList
« Respuesta #23 en: 02 de Diciembre 2020, 00:30 »
CONTINUACIÓN CÓDIGO COMPLETO

Código de la clase Evento.java

Código: [Seleccionar]
package actividadesYeventos;

public class Evento {

private String nombre;private String fecha;private String organizador;private String facultad;private String tema;//Salones de Actividades
private Actividad[] salones;public Evento() {nombre = ""; fecha = ""; organizador = ""; facultad = ""; tema = ""; salones = new Actividad[0]; //Contructor por defecto implica tener 0 salones.
}

public Evento(String nombreEven, String fechaEven, String organizaEven,
String facultadEven, String temaEven, int numSalones) {nombre = nombreEven; fecha = fechaEven; organizador = organizaEven; facultad = facultadEven; tema = temaEven; salones = new Actividad[numSalones]; //Al construir un evento, nos dirán cuantos salones tendrá
}

public String getNombre() {return nombre;}

public void setNombre(String nombreEven) {nombre = nombreEven;}

public String getFecha() {return fecha;}

public void setFecha(String fechaEven) {fecha = fechaEven;}

public String getOrganizador() {return organizador;}

public void setOrganizador(String organizaEven) {organizador = organizaEven;}

public String getFacultad() {return facultad;}

public void setFacultad(String facultadEven) {facultad = facultadEven;}

public String getTema() {return tema;}

public void setTema(String temaEven) {tema = temaEven;}

public void setNumSalones(int numSalones) {salones = new Actividad[numSalones];}

public void mostrarProgramacion() {//Es posible que no hayan salones asignados.
if (salones.length == 0)
System.out.println("\nEste EVENTO no tiene salones de ACTIVIDADES asignados"); else { /*
* Sí hay salones asignados, pero puede que aun no hayan actividades.
* Si TODAS las posiciones del array de Actividad tienen valor null,
* es que no hay actividades programadas.
*/
boolean hayActividades = false;//Si encontramos al menos 1 actividad, pasará a true
for (int i = 0; i < salones.length; i++) { if (salones[i] != null) { hayActividades = true; //Sí que hay actividades programadas
System.out.println("\nNº de Salón: " + i); System.out.println(salones[i]);//Mostramos datos de la Actividad
}
}
/*
* Terminado el bucle FOR, si la variable hayActividades
* conserva valor FALSE, es que no hay actividades
* programadas en este Evento y lo indicamos en pantalla.
*/
if (!hayActividades)
System.out.println("\nAún no se han programado ACTIVIDADES para este EVENTO");
}
}

/*
* Construye un String con los indices del arreglo
* que están libres y pueden recibir una Actividad.
* Si no hay ninguno libre, el String retornado estará vacío.
*/
public String getSalonesDisponibles() {String disponibles = ""; /*
* Recorremos los "salones", aquellos con valor null
* significa que están libres, así que recogemos su número
* para mostrarselo al usuario
*/
for (int i = 0; i < salones.length; i++)
if (salones[i] == null)
disponibles += "[" + i + "] ";
return disponibles;}

/*
* Recibe una Actividad y un número de salón donde programarla.
* Si en esta posición del arreglo (el salón) ya existe una Actividad
* o no existe dicha posición, se informará en pantalla.
*/
public void programarActividad(Actividad act, int salon) {try { if (salones[salon] == null) { //Salón disponible
salones[salon] = act; System.out.println("\nLa ACTIVIDAD ha sido programada."); }
else //Salon no tiene valor null, ya está ocupado por otro actividad
System.out.println("\nEl salón seleccionado ya tiene una ACTIVIDAD programada."); } catch(IndexOutOfBoundsException ex) { //Nos han dado un número de salón que no existe
System.out.println("\nNo existe el salón: " + salon); }
}

/*
* Busca la Actividad programada con más participantes y la retorna.
* Si no hubieran Actividades en este Evento, se retornará valor null.
*/
public Actividad getActividadMasParticipantes() {/*
* Buscaremos Actividades en los "salones" y guardaremos su cantidad de participantes
* para poder comparar con las siguientes y determinar cuál tiene
* MAYOR número de participantes.
*
* Para ello, iniciamos una variable con el valor int más BAJO posible
* y tener un valor inicial con el que poder comparar, buscando valores MAYORES
*/
int maxParticipantes = Integer.MIN_VALUE; //Para este caso, en realidad habría bastado con iniciar a 0

//Aquí guardaremos la actividad de MAYOR participacion
Actividad mayor = null;
for (Actividad activ: salones) { if (activ != null) //Solo consultamos salones que tengan Actividad programada
if (activ.getParticipantes() > maxParticipantes) { //Esta Actividad tiene MAS participantes que la anterior consultada
maxParticipantes = activ.getParticipantes(); //Actualizamos cantidad mayor de participantes
mayor = activ; //Guardamos la Actividad que, por ahora, tiene record de participantes
}
}

return mayor; //Retornamos la Actividad con más participantes
}

/*
* Busca la Actividad programada con menos participantes y la retorna.
* Si no hubieran Actividades en este Evento, se retornará valor null.
*/
public Actividad getActividadMenosParticipantes() {/*
* Buscaremos Actividades en los "salones" y guardaremos su cantidad de participantes
* para poder comparar con las siguientes y determinar cuál tiene
* MENOR número de participantes.
*
* Para ello, iniciamos una variable con el valor int más ALTO posible
* y tener un valor inicial con el que poder comparar, buscando valores MENORES
*/
int minParticipantes = Integer.MAX_VALUE;
//Aquí guardaremos la actividad de MENOR participacion
Actividad menor = null;
for (Actividad activ: salones) { if (activ != null) //Solo consultamos salones que tengan Actividad programada
if (activ.getParticipantes() < minParticipantes) { //Esta Actividad tiene MENOS participantes que la anterior consultada
minParticipantes = activ.getParticipantes(); menor = activ; }
}

return menor; //Retornamos la Actividad con más participantes
}

/*
* Retorna la suma total de participantes
* de todas las Actividades de este Evento.
*/
public int totalParticipantes() {int sumaParticipantes = 0;
//Recorremos arreglo de Actividades, y sumamos sus participantes
for (Actividad activ: salones)
if (activ != null)
sumaParticipantes += activ.getParticipantes();
return sumaParticipantes;}

/*
* Retorna el array de Actividades al completo.
*/
public Actividad[] getSalones() {return salones;}

/*
* Retorna una lista de las Actividades que expone
* el expositor especificado por parámetros.
*/
public String actividadesExpositor(String expositor) {String actividades = "";
for (Actividad activ: salones)
if (activ != null) //Si el salon tiene una Actividad...
if (activ.getExpositor().equals(expositor))//Y su Expositor coincide con el que consultan..
actividades += "- " + activ.getNombre() + "\n"; //Listamos el nombre de la Actividad

return actividades;}

}


Código de la clase MenuEventos.java

Código: [Seleccionar]
package actividadesYeventos;

import java.util.ArrayList;
import java.util.Scanner;

public class MenuEventos {

//Aquí se almacenarán los Eventos
private static ArrayList<Evento> eventos = new ArrayList<Evento>();//Objeto Scanner para leer datos por teclado
private static Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {crearEventosPorDefecto(); //Invocamos método que nos proporciona dos eventos.

String opcion = "";//Variable para recoger opcion del usuario

do { System.out.println("\n\t\tMENU EVENTOS"); System.out.println("\t\t---- -------\n"); System.out.println("[1] - Crear nuevo EVENTO"); System.out.println("[2] - Crear nueva ACTIVIDAD"); System.out.println("[3] - Mostrar ACTIVIDAD con mayor número de participantes"); System.out.println("[4] - Mostrar ACTIVIDAD con menor número de participantes"); System.out.println("[5] - Mostrar total participantes de un EVENTO"); System.out.println("[6] - Mostrar ACTIVIDADES ordenadas de mayor a menor número de participantes"); System.out.println("[7] - Consultar ACTIVIDADES de un expositor"); System.out.println("[8] - Mostrar programación de un EVENTO"); System.out.println("\n[0] - SALIR del programa"); System.out.print("\nEscoja opción: "); opcion = teclado.nextLine(); //Evaluamos opcion escogida
switch(opcion) { case "0":
System.out.println("\n\t\t--FIN DE PROGRAMA--"); break; case "1":
crearEvento(); break; case "2":
crearActividad(); break; case "3":
mostrarActividadMayor(); break; case "4":
mostrarActividadMenor(); break; case "5":
mostrarTotalParticipantesEvento(); break; case "6":
mostrarActividadesMayorMenor(); break; case "7":
consultarActividadesExpositor(); break; case "8":
mostrarActividadesEvento(); break; default:
System.out.println("\nOpción no válida..."); }
pausa(); } while(!opcion.equals("0"));}

/*
* Sencillo método que pausa la ejecución del programa
* hasta que el usuario pulse ENTER/INTRO
*/
private static void pausa() {System.out.println("\nPulse ENTER para seguir...\n"); teclado.nextLine();}

/*
* Crearemos dos eventos via código para que el
* programa comience con algunos datos con los
* que trabajar
*/
private static void crearEventosPorDefecto() {/*
* Recordamos que un evento tiene los atributos:
* nombre, fecha, organizador, facultad que organiza,
* temática y salones disponibles para actividades
*/
Evento tecnotic = new Evento("Tecnotic", "03/02/2021", "Ismael Clemente",
"MIT Club of Spain", "IA aplicada en operaciones bursátiles", 5); Evento softhard = new Evento("Softhard", "14/03/2021", "ParqueSoft",
"Universidad Antonio Jose Camacho", "Software Libre en Seguridad Informática", 3); //Además, les vamos a proporcionar algunas Actividades
tecnotic.programarActividad(new Actividad("Computación neuronal", "Kenzo Hirai", "09:30", 45), 0); tecnotic.programarActividad(new Actividad("CPU cuántica", "Santiago Gutierrez", "12:00", 32), 3); softhard.programarActividad(new Actividad("Kernel UNIX", "Michael John", "13:15", 25), 1); softhard.programarActividad(new Actividad("Heurística por hardware", "Teresa Almeida", "12:00", 32), 2); //Eventos creados, los agregamos al ArrayList que los almacena
eventos.add(tecnotic); eventos.add(softhard);}

/*
* Muestra al usuario los Eventos disponibles para que
* elija uno y saldrá en pantalla sus Actividades programadas,
* si es que las tiene.
*/
private static void mostrarActividadesEvento() {System.out.println("\nEVENTOS disponibles:"); for (int i = 0; i < eventos.size(); i++) { System.out.println(i + " - " + eventos.get(i).getNombre()); }
System.out.print("\nSeleccione nº de EVENTO: "); int num = Integer.parseInt(teclado.nextLine());
/*
* Con try catch, podemos capturar la posible
* excepción que podría ocurrir si el usuario
* nos da una posición que no existe en el ArrayList
* y así obraremos en consecuencia.
*/
try { eventos.get(num).mostrarProgramacion(); } catch(IndexOutOfBoundsException ex) { System.out.println("Selección equivocada..."); }
}

/*
* Pide los datos necesarios para crear
* un Evento y lo agrega al ArrayList
*/
private static void crearEvento() {//Pedimos datos del evento
System.out.println("\nNombre del EVENTO: "); String nombre = teclado.nextLine(); System.out.println("Fecha: "); String fecha = teclado.nextLine(); System.out.println("Organizador: "); String organizador = teclado.nextLine(); System.out.println("Facultad que organiza: "); String facultad = teclado.nextLine(); System.out.println("Temática: "); String tema = teclado.nextLine(); System.out.println("Cantidad salones asignados: "); int salones = Integer.parseInt(teclado.nextLine()); //Creamos un evento nuevo y añadimos al ArrayList
eventos.add(new Evento(nombre, fecha, organizador, facultad, tema, salones));}

/*
* Permite al usuario crear una Actividad y escoger
* un Evento y salón disponible para programarla.
*/
private static void crearActividad() {//Pedimos datos de la actividad
System.out.println("Nombre de la ACTIVIDAD: "); String nombre = teclado.nextLine(); System.out.println("Expositor: "); String expositor = teclado.nextLine(); System.out.println("Hora: "); String hora = teclado.nextLine(); System.out.println("Cantidad de Participantes: "); int participantes = Integer.parseInt(teclado.nextLine());
//Creamos la Actividad
Actividad nuevaActiv = new Actividad(nombre, expositor, hora, participantes);
//Tenemos Actividad, preguntamos en que Evento lo vamos a programar
System.out.println("\nEVENTOS disponibles:"); for (int i = 0; i < eventos.size(); i++) { System.out.println(i + " - " + eventos.get(i).getNombre()); }
System.out.print("\nSeleccione nº de EVENTO: "); int num = Integer.parseInt(teclado.nextLine());
try { Evento evento = eventos.get(num); String salones = evento.getSalonesDisponibles(); if (salones.isEmpty())//Evento ha retornado un String vacío, no hay salones libres
System.out.println("Este EVENTO está completo. No hay salones disponibles."); else { System.out.println("Salones disponibles: " + salones); System.out.print("Elija salón donde programar la ACTIVIDAD: "); int salon = Integer.parseInt(teclado.nextLine()); evento.programarActividad(nuevaActiv, salon);//Pasamos actividad y salon, Evento se encarga del resto
}
} catch(IndexOutOfBoundsException ex) {//Ha elegido un evento que no existe
System.out.println("Selección equivocada..."); }
}

private static void mostrarActividadMayor() {/*
* Recorreremos los Eventos, pidiéndole a cada uno
* que nos devuelva su Actividad con más participantes
* y de todas estas nos quedaremos con la mayor de todas.
*/

Actividad mayor = null; int maxParticipantes = Integer.MIN_VALUE; String eventoMayor = ""; //También guardaremos el nombre del Evento con Actividad mayor.

for (Evento event: eventos) { if (event.getActividadMasParticipantes() != null)
if (event.getActividadMasParticipantes().getParticipantes() > maxParticipantes) { mayor = event.getActividadMasParticipantes(); maxParticipantes = mayor.getParticipantes(); eventoMayor = event.getNombre(); }
}

/*
* Comprobamos si tenemos alguna Actividad como resultado
* y mostramos datos.
* Podríamos no tener ningún resultado, debido a que quizás
* aún no se han programado Actividades.
*/

if (mayor ==  null)
System.out.println("No hay ACTIVIDADES programadas en ningún EVENTO"); else { System.out.println("\nACTIVIDAD con más participantes"); System.out.println("- Nombre: " + mayor.getNombre()); System.out.println("- Participantes: " + maxParticipantes); System.out.println("- Evento: " + eventoMayor); }
}

private static void mostrarActividadMenor() {Actividad menor = null; int minParticipantes = Integer.MAX_VALUE; String eventoMenor = "";
for (Evento event: eventos) { if (event.getActividadMenosParticipantes() != null)
if (event.getActividadMenosParticipantes().getParticipantes() < minParticipantes) { menor = event.getActividadMenosParticipantes(); minParticipantes = menor.getParticipantes(); eventoMenor = event.getNombre(); }
}

if (menor ==  null)
System.out.println("No hay ACTIVIDADES programadas en ningún EVENTO"); else { System.out.println("\nACTIVIDAD con menos participantes"); System.out.println("- Nombre: " + menor.getNombre()); System.out.println("- Participantes: " + minParticipantes); System.out.println("- Evento: " + eventoMenor); }
}

private static void mostrarTotalParticipantesEvento() {System.out.println("\nEVENTOS disponibles:"); for (int i = 0; i < eventos.size(); i++) { System.out.println(i + " - " + eventos.get(i).getNombre()); }
System.out.print("\nSeleccione nº de EVENTO: "); int num = Integer.parseInt(teclado.nextLine());
try { System.out.println("Evento seleccionado: " + eventos.get(num).getNombre()); System.out.println("Total participantes: " + eventos.get(num).totalParticipantes()); } catch(IndexOutOfBoundsException ex) { System.out.println("Selección equivocada..."); }
}

private static void mostrarActividadesMayorMenor() {//Recopilaremos TODAS las Actividades programas en un único ArrayList
ArrayList<Actividad> actividades = new ArrayList<Actividad>();
/*
* Recorremos todos los Eventos y les pediremos sus Salones.
* De estos Salones, cogeremos las Actividades programadas
*/

for (Evento event: eventos) { Actividad[] salones = event.getSalones(); for (Actividad activ: salones)
if (activ != null) //Buscamos Salones que si tengan Actividades
actividades.add(activ); }

/*
* Ya hemos recorrido todos los Eventos y tenemos sus Actividades.
* Ahora hay que ordenar de mayor a menor.
* Pero ojo, puede que no hayamos encontrado Actividades,
* o que solo haya una y por tanto no hay nada que ordenar
*/

if (actividades.isEmpty())
System.out.println("No hay Actividades programadas en ningún Evento"); else if (actividades.size() == 1) { System.out.println("\nActividades disponibles: 1"); System.out.println(actividades.get(0)); }
else { System.out.println("\nActividades disponibles: " + actividades.size()); //Método Burbuja
for (int i = 0; i < actividades.size() - 1; i++) {
            for (int j = 0; j < actividades.size() - i - 1; j++) {
            //Si la actividad siguiente en el array, es MAYOR que la actual...
                if (actividades.get(j + 1).compareTo(actividades.get(j)) == 1) {
                //...entonces hay que intercambiar sus posiciones para ordenarlas
                    Actividad aux = actividades.get(j + 1);                    actividades.set(j + 1, actividades.get(j));                    actividades.set(j, aux);                }
            }
        }
//ArrayList ordenado de mayor a menor. Mostramos las Actividades en pantalla
for (Actividad activ: actividades)
System.out.println(activ); }

}

private static void consultarActividadesExpositor() {//Pedimos nombre del expositor
System.out.print("Nombre del Expositor: "); String expositor = teclado.nextLine();
boolean actividadesEncontradas = false; //Para controlar si se encontró alguna Actividad

//Consultamos los Eventos
for (Evento event: eventos) { String actividades = event.actividadesExpositor(expositor); if (!actividades.isEmpty()) { //El String retornado NO está vacío, se han encontrado Actividades
actividadesEncontradas = true; System.out.println("\nEVENTO: " + event.getNombre()); System.out.println("ACTIVIDADES donde expone:"); System.out.println(actividades); }
}
//Tras recorrer todos los eventos, si NO se han encontrado Actividades, informamos
if (!actividadesEncontradas)
System.out.println("\nNo se han encontrado ACTIVIDADES para el Expositor: "  + expositor);}
}


Saludos
« Última modificación: 01 de Abril 2021, 12:08 por Ogramar »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".