Queria compartilhar minha solução ao exercicio e digo que estou totalmente aberto a questionamentos e sugestões
package org.example;
import java.io.IOException;
import java.util.*;
public class Time {
private String nome;
List<String> arraylist = new ArrayList<>();
List<String> linkedList = new LinkedList<>();
Scanner sc = new Scanner(System.in);
public Time() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String toString() {
return "Time: " + this.getNome();
}
public void Menu(){
System.out.println(" Menu de times ");
try {
System.in.read();
}catch (IOException e){
e.printStackTrace();
}
int opc= 0;
try {
System.out.println("Selecione a opção desejada: \n" +
"1 - Insira um time; \n" +
"2 - Listar times; \n" +
"3 - Sair.");
opc = sc.nextInt();
}catch (InputMismatchException e ){
System.out.println("Opção invalida");
sc.nextInt();
Menu();
return;
}
switch (opc) {
case 1:
System.out.println("Escreva o nome do time: ");
this.setNome(sc.next());
arraylist.add(this.getNome());
System.out.println("Time: " + this.getNome() + " cadastrado com sucesso!");
System.out.println("Insira outro time: ");
this.setNome(sc.next());
linkedList.add(this.getNome());
System.out.println("Time: " + this.getNome() + " cadastrado com suceso!" );
Menu();
break;
case 2:
TratarImpressaoDivisao();
break;
case 3:
System.out.println("Saindo do programa...");
System.exit(0);
default:
System.out.println("Opção invalida!");
Menu();
break;
}
}
public void TratarImpressaoDivisao(){
int opcLista = 0;
try {
System.out.println("Escolha qual divisão deseja imprimir: \n" +
"1 - Serie A (ArrayList) \n" +
"2 - Serie B (LinkedList)");
opcLista = sc.nextInt();
}catch (InputMismatchException e) {
System.out.println("opção invalida");
sc.next();
TratarImpressaoDivisao();
}
if (opcLista == 1) {
if (arraylist.isEmpty()) {
System.out.println("Lista vazia");
Menu();
} else {
for (String listarArrayList : arraylist)
System.out.println("Seria A: " + listarArrayList);
Menu();
}
} else if (opcLista == 2) {
if (linkedList.isEmpty()) {
System.out.println("Lista vazia");
Menu();
} else {
for (String listarLinkedList : linkedList) {
System.out.println("Serie B: " + listarLinkedList);
Menu();
}
}
}else{
System.out.println("Insira uma opção valida!");
TratarImpressaoDivisao();
}
}
}
package org.example;
public class Main {
public static void main(String[] args) {
Time time = new Time();
time.Menu();
}
}