Boa tarde, queria uma ajuda de como posso fazer para percorrer linha por linha de um ArrayList, preciso dizer o nome e a idade de jogadores, e preciso da idade deles para saber a categoria.
Bloco de Citação
import java.util.ArrayList;
import java.util.Scanner;
public class Jogador {
Scanner teclado = new Scanner(System.in);
ArrayList jogador = new ArrayList();
public void addJogador(){
String opc = "S";
do{
System.out.println("Informe o Nome e a Idade do Jogador");
jogador.add(teclado.nextLine());
System.out.println("Deseja adicionar mais Jogadores? [S/N]");
opc = teclado.nextLine();
}while (opc.equals("S"));
}
public void listar(){
System.out.println("=== LISTA DE JOGADORES ===");
for(int i=0; i<jogador.size() ;i++){
System.out.println("Posição "+i+ " - " +jogador.get(i));
}
}
public String getCategoria(String n){
if(jogador == "9"){
return "Infantil";
}
else if(jogador == "14"){
return "Infanto-Juvenil";
}
else if(jogador == "17"){
return "Juvenil";
}
else if(jogador == "21"){
return "Sub-21";
}
else if(jogador > "21"){
return "Profissional";
}
else{
return "Categoria não existe";
}
}
}
Não misture as interações da interface de usuário dentro das classes do modelo do problema.
Exemplo de solução:
Classe Jogador:
import java.util.ArrayList;
import java.util.List;
public class Jogador {
private static List<Jogador> jogadores = new ArrayList<>();
public static List<Jogador> listar() {
return jogadores;
}
private String nome;
private int idade;
public String getCategoria() {
if (idade > 21) {
return "Profissional";
}
switch (idade) {
case 9:
return "Infantil";
case 14:
return "Infanto-Juvenil";
case 17:
return "Juvenil";
case 21:
return "Sub-21";
default:
return "Categoria não existe";
}
}
public int getIdade() {
return idade;
}
public String getNome() {
return nome;
}
public void salvar() {
jogadores.add(this);
}
public void setIdade(int idade) {
this.idade = idade;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Classe que executa o programa em si:
import java.io.PrintStream;
import java.util.List;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.cadastrarJogadores();
programa.listarJogadores();
}
private final Scanner entrada = new Scanner(System.in);
private final PrintStream saida = System.out;
public void cadastrarJogadores() {
String opcao = null;
do {
saida.println("Informe os dados Jogador");
saida.print(" Nome: ");
String nome = entrada.nextLine();
saida.print(" Idade: ");
int idade = Integer.parseInt(entrada.nextLine());
Jogador jogador = new Jogador();
jogador.setNome(nome);
jogador.setIdade(idade);
jogador.salvar();
saida.println("Deseja adicionar mais Jogadores? [S/N]");
opcao = entrada.nextLine();
} while ("S".equalsIgnoreCase(opcao));
}
public void listarJogadores() {
saida.println("=== LISTA DE JOGADORES ===");
List<Jogador> jogadores = Jogador.listar();
for (int i = 0; i < jogadores.size(); i++) {
Jogador jogador = jogadores.get(i);
saida.println("Posição " + i + " - " + jogador.getNome() + " " + jogador.getIdade() + " anos");
}
}
}