Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

ArrayList sem repetição

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>