I am building a small algorithm that traverses a ArrayList
and compares the value found with a value entered by the user.
But I want to print on the screen only the value that satisfies the operation, not the other values that do not match those that were compared:
public class Hash {
HashMap<String, String> mapaPosicoes = new HashMap<>();
ArrayList<String> listaPosicoes = new ArrayList<>();
Scanner teclado = new Scanner(System.in);
String posicaoJogador, nomeJogador;
public void pegaDadosJogador() {
System.out.print("Digite a posição do jogador: ");
posicaoJogador = teclado.nextLine();
System.out.print("Digite o nome do jogador: ");
nomeJogador = teclado.nextLine();
}
public void validadorDadosJogador() {
listaPosicoes.add("Atacante");
listaPosicoes.add("Cortador");
listaPosicoes.add("Levantador");
listaPosicoes.add("Bloqueador");
listaPosicoes.add("Jogador de Defesa");
listaPosicoes.add("Líbero");
for(String iteracao: listaPosicoes) {
if(!(!iteracao.equals(posicaoJogador) || nomeJogador.isEmpty())) {
mapaPosicoes.put(nomeJogador, posicaoJogador);
System.out.println("Jogador(es) Mapeado(s)");
System.out.println(mapaPosicoes);
}else {
System.out.println("A");
}
}
}
public class Executing {
public static void main(String[] args) {
Hash time = new Hash();
time.pegaDadosJogador();
time.validadorDadosJogador();
}
Please note, it will be typed "Input not satisfying" until you find the correct position in the array . I am fully aware that this is the fault of the loop, which will be running until the last position, but since the iteration variable is local, I do not know how to do it outside the loop.