@Viniciusvieira04 escreveu:
Eae galera.
Estou fazendo uma atividade da facu, tenho que criar um sistema de lista de nomes (com espaço de 50). Uma das exigências do exercício é não repetir o nome que já foi adicionado, estou usando o ArrayList porque tenho que fazer em vetores, e ArrayList são vetores, certo?
Fusei na internet e achei um código que tem o macete pra não repetir o nome no ArrayList, só que não consigo adaptar ele ao meu. Como estendo uma classe na outra?
Basicamente preciso adaptar esse código debaixo, com o meu, que está debaixo deste código. Segue fonte do código de ArrayList sem repetição.
import java.util.ArrayList; import java.util.Arrays; public class Lista<T> extends ArrayList<T>{ public Lista() { super(); //chame o construtor de ArrayList } public boolean contains(Object[] o){ //percorre o bjeto 'Lista': // esse for da erro for(int i=0; i< this.size(); i++){ /* cria um array de objetos e faz um 'type-cast' desta própria classe atribuindo a ele o valor do elemento, e isso para cada elemento, de forma que todos os elementos sejam tratados como arrays de objetos: */ // essa linha da vermelho Object[] toCompare = (Object[])this.get(i); if(Arrays.equals(o, toCompare)){ return true; } } return false; } }
https://www.vivaolinux.com.br/dica/Extendendo-a-classe-ArrayList-para-criar-listas-sem-repeticao
Meu código:
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; /** * * @author Vinicius */ public class Lista { public List<String> lista = new ArrayList<String>(50); //inicia lista private String nome; private boolean ativo; private int numero; void adicionarNome() { Scanner entrada = new Scanner(System.in); for (int i = 0; i <= 0; i++) { System.out.println("Digite o nome: "); nome = entrada.nextLine(); lista.add("Nome: " + nome); } } void removerNome() { System.out.println("Digite nome para remoção"); Scanner leitor = new Scanner(System.in); nome = leitor.nextLine(); boolean remove = lista.remove(nome); } void ordenar() { Collections.sort(lista); } void pesquisarNome() { System.out.println(lista); } void menu() { Scanner entrada = new Scanner(System.in); while (numero != 5) { System.out.println("[1] Adicionar nome "); System.out.print("[2] para exibir lista"); System.out.print("[3] para ordenar lista"); System.out.print("[4] para excluir nome"); System.out.print("[0] para sair"); numero = entrada.nextInt(); switch (numero) { case 1: adicionarNome(); break; case 2: pesquisarNome(); break; case 3: ordenar(); break; case 4: removerNome(); break; case 0: System.out.println("Sair"); return; } } } public static void main(String args[]) { Lista a = new Lista(); a.menu(); } }
Mensagens: 1
Participantes: 1