Boa noite, estou fazendo um código onde tenho q listar todos os hoteis encontrados de acordo com as caracteristicas desejada pelo usuário...
Ex: Se ele quuiser um hotel que tenha piscina, o programa terá q listar todos os hoteis que tenha uma piscina disponivel...
O problema que tou enfrentando é para faze-lo listar todos hoteis encontrados, pois ele só está exibindo o primeiro...
package src;
import java.util.*;
import javax.swing.*;
public class Consulta {
//Constantes
// Cadastro
private static final int CADASTRAR = 00;
//Facilidades
private static final int CONSULTAR = 11;
private static final int PISCINA = 1;
private static final int RESTAURANTE = 2;
private static final int AUDITORIO = 3;
private static final int ACESSO_INTERNET = 4;
private static final int ACADEMIA = 5;
private static final int ESTACIONAMENTO = 6;
//OPERAÇÕES
private static final String PROMPT_OPERACAO =
"\n Escolha a opção desejada: " +
"\n (00) CADASTRAR" +
"\n (11) CONSULTAR";
private static final String PROMPT_OPERACAO_FACILIDADES =
"\n Escolha a facilidade desejada para consulta os hoteis: " +
"\n (1) PISCINA" +
"\n (2) RESTAURANTE" +
"\n (3) AUDITORIO" +
"\n (4) ACESSO A INTERNET" +
"\n (5) ACADEMIA" +
"\n (6) ESTACIONAMENTO";
// FLAG
private static final String PROMPT_CONTINUA = "DESEJA CONTINUAR?";
// PERGUNTAS DO CADASTRO
private static final String PROMPT_NOME = "Informe o nome do hotel: ";
private static final String PROMPT_ENDERECO = "Informe o endereço do hotel: ";
private static final String PROMPT_CLASSIFICACAO = "Informe a classificação do hotel (estrelas): ";
private static final String PROMPT_NUMERO_QUARTOS = "Informe o número de quartos do hotel: ";
private static final String PROMPT_PISCINA = "O hotel possui piscina (s/n)?: ";
private static final String PROMPT_RESTAURANTE = "O hotel possui restaurante (s/n)?: ";
private static final String PROMPT_AUDITORIO = "O hotel possui auditorio (s/n)?: ";
private static final String PROMPT_ACESSO_INTERNET = "O hotel possui internet (s/n)?: ";
private static final String PROMPT_ACADEMIA = "O hotel possui academia (s/n)?: ";
private static final String PROMPT_ESTACIONAMENTO = "O hotel possui estacionamento (s/n)?: ";
// Criação de um objeto ArrayList para armazenar os dados das pessoas
private static ArrayList cadastro = new ArrayList();
//############################### INÍCIO: MAIN #######################################
/**
* Método main.
*/
public static void main(String[] args) {
int continua;
// Entrada dos dados de cadastro
do {
int op = Integer.parseInt(JOptionPane.showInputDialog(null, PROMPT_OPERACAO, "Menu Principal", JOptionPane.INFORMATION_MESSAGE));
switch (op) {
case CADASTRAR:
cadastrar();
break;
case CONSULTAR:
consultar();
break;
default:
JOptionPane.showMessageDialog(null, "Opção inválida ou não implementada.", "ATENÇÃO!", JOptionPane.ERROR_MESSAGE);
} // fim do switch
// Perguntar se o usuário quer continuar
continua = JOptionPane.showConfirmDialog(null, PROMPT_CONTINUA, "Continuar?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
} while(continua == JOptionPane.YES_OPTION);
} // fim do main
//############################### FIM: MAIN ##########################################
//############################### INICIO: CADASTRAR ##################################
/**
* Método cadastrar.
*/
public static void cadastrar() {
Hotel hotel = new Hotel();
// Leitura do nome
hotel.setNome( JOptionPane.showInputDialog(null, PROMPT_NOME) );
// Leitura do endereco
hotel.setEndereco( JOptionPane.showInputDialog(null, PROMPT_ENDERECO) );
// Leitura do classificacao
hotel.setClassificacao( JOptionPane.showInputDialog(null, PROMPT_CLASSIFICACAO) );
// Leitura do numero de quartos
hotel.setNumeroQuartos( JOptionPane.showInputDialog(null, PROMPT_NUMERO_QUARTOS) );
// Leitura facilidades
JOptionPane.showMessageDialog(null, "Digite S (sim) se o hotel possui esta facilidade e N (não) para caso não possua");
// Picina
hotel.setPiscina( JOptionPane.showInputDialog(null, PROMPT_PISCINA) );
//
hotel.setRestaurante( JOptionPane.showInputDialog(null, PROMPT_RESTAURANTE) );
//
hotel.setAuditorio( JOptionPane.showInputDialog(null, PROMPT_AUDITORIO) );
//
hotel.setAcesso_internet( JOptionPane.showInputDialog(null, PROMPT_ACESSO_INTERNET) );
//
hotel.setAcademia( JOptionPane.showInputDialog(null, PROMPT_ACADEMIA) );
//
hotel.setEstacionamento( JOptionPane.showInputDialog(null, PROMPT_ESTACIONAMENTO) );
// Adicionar o hotel na coleção
cadastro.add(hotel);
} // fim do cadastrar
//############################### FIM: CADASTRAR #####################################
//############################### INICIO: CONSULTAR ##################################
/**
* Método consultar
*/
public static void consultar() {
// flag para indicar se encontrou os hoteis com a facilidade
boolean achei = false;
// solicitar que entre com a facilidade
int facilidade = Integer.parseInt(JOptionPane.showInputDialog(null, PROMPT_OPERACAO_FACILIDADES,
"Menu Facilidades", JOptionPane.INFORMATION_MESSAGE));
// iterador: percorre os elementos da coleção
Iterator i = cadastro.iterator();
switch(facilidade){
case PISCINA:
// ACHAR HOTEL COM PISCINA
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getPiscina().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
case RESTAURANTE:
// ACHAR HOTEL COM RESTAURANTE
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getRestaurante().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
case AUDITORIO:
// ACHAR HOTEL COM AUDITÓRIO
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getAuditorio().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
case ACESSO_INTERNET:
// ACHAR HOTEL COM INTERNET
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getAcesso_internet().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
case ACADEMIA:
// ACHAR HOTEL COM ACADEMIA
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getAcademia().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
case ESTACIONAMENTO:
// ACHAR HOTEL COM ESTACIONAMENTO
while (!achei && i.hasNext()){
Hotel h = (Hotel) i.next();
if (h.getEstacionamento().equalsIgnoreCase("s")){
JOptionPane.showMessageDialog(null, "Hotel(is) encontrado(s):" + h.getNome(),
"Resultado da Consulta", JOptionPane.INFORMATION_MESSAGE);
achei = true;
}// fim do if
}// fim do while
if(!achei){
JOptionPane.showMessageDialog(null, "Hotel(is) não encontrado(s)");
}// fim do if
break;
default:
JOptionPane.showMessageDialog(null, "OPÇÃO INVÁLIDA OU NÃO IMPLEMENTADA!");
}
} // fim do pesquisar
//############################### FIM: CANSULTAR #####################################
}