Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Minha Solução] Desafio Criar ArrayList e LinkedList

Desafio4. 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.


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

import static java.lang.System.exit;

public class Nome {
    private String nomePessoa;

    List<String> nome = new ArrayList<>();
    List<String> outroNome = new LinkedList<>();
    Scanner sc = new Scanner(System.in);

    //Construtor
    public Nome(String nomePessoa) {
        this.nomePessoa = nomePessoa;
    }

    //Sobrecarga método toString
    @Override
    public String toString() {
        return "Nome: " + this.getNomePessoa().toString();
    }

    //Método entrada de dados
    public void entrarDados() {
        System.out.println("===== ENTRADA DADOS =====");
        int opcao = 1;
        do {
            System.out.println("\n1 - INSERIR NOME PESSOA");
            System.out.println("2 - LISTAR NOME PESSOA");
            System.out.println("0 - SAIR");
            int selecao = sc.nextInt();
            switch (selecao) {
                case 1:
                    System.out.println("Insira o nome: ");
                    this.setNome(sc.next());
                    nome.add(this.getNomePessoa());
                    System.out.println("Nome: " + this.getNomePessoa().toString() + " cadastrado!");
                    System.out.println("Insira outro nome:");
                    this.setNome(sc.next());
                    outroNome.add(this.getNomePessoa());
                    System.out.println("Outro nome: " + this.getNomePessoa().toString() + " cadastrado!");
                    break;
                case 2:
                    System.out.println("\n===== List -> ArrayList =====");
                    for (int i = 0; i < nome.size(); i++) {
                        System.out.println(i + " - " + "Nome: " + nome.get(i).toString());
                    }

                    System.out.println("\n===== List -> LinkedList =====");
                    for (int z = 0; z < outroNome.size(); z++) {
                        System.out.println(z + " - " + "Outro Nome: " + outroNome.get(z).toString());
                    }
                    break;
                case 0:
                    System.out.println("Saindo do programa...");
                    exit(0);
            }
        } while (opcao == 1);
    }

    //Getters e Setters
    public String getNomePessoa() {
        return nomePessoa;
    }

    public void setNome(String nomePessoa) {
        this.nomePessoa = nomePessoa;
    }
}

public class Principal {
    public static void main(String[] args) {
        Nome nome = new Nome("");
        nome.entrarDados();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade


Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Boa tarde, Carlos, como vai?

Obrigado por compartilhar sua solução com a comunidade Alura. Achei muito interessante como você utilizou tanto o ArrayList quanto o LinkedList na sua implementação. Essa abordagem de trocar as implementações de List sem precisar alterar o código mostra uma ótima compreensão do polimorfismo em Java.

Conte com o apoio do Fórum na sua jornada.

Abraços e bons estudos!