Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Crie uma lista utilizando a interface List e instancie-a tanto como ArrayList quanto como LinkedList. Adicione elementos e imprima a lista, mostrando que é possível trocar facilmente a implementação.

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();
    }
}