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