Duplicidade no Vetor

3 respostas
alexwebsp

Bom dia!

Criei um método que obtém os elementos(String) inseridos pelo usuário pelo um JList e verifica se há duplicidade de elementos. Pois não pode haver duplicidade.
Não estou conseguindo fazer este método, já pesquisei bastante na internet, num monte de fóruns, por favor me ajudem.

Objetivo: No meu JList e obtenho pelo um listModel não pode haver duplicidade de elementos.

Obrigado!

private boolean VerificarDuplicidadelistModel()
        {

        String lista = "";
        int repeticao=1;
        int indice=0;
        Vector vetor = new Vector();

        while(repeticao==listModel.size())
            {
            for ( int i = 0; i < listModel.getSize(); i++ )
                {
                lista =  (String) listModel.get(i);
                vetor.add(lista);
                repeticao++;
                }
            }
            for ( int a = 0; a < listModel.getSize(); a++ )
                {
                lista =  (String) listModel.get(a);
                indice = Collections.binarySearch (vetor, lista);
                
                }
                        if(indice>=2)
                            {
                            return true;
                            }
                            else
                                {
                                return false;
                                }
            }

3 Respostas

edilson_x
Olá Marcelo, uma forma de se fazer isso é assim:
Vector<String> v = new Vector<String>();
    
    v.add("Teste");
    v.add("teste1");
    v.add("Teste");
  
    for(String valor : v){ //itera o vetor e atribui a variavel valor o valor atual
    
        int quantidade = Collections.frequency(v, valor); // verifica a quantidades de ocorrencia do valor na variavel 'valor' existentes no vetor
        if (quantidade  >1) System.out.println("Contem "+ quantidade  +" valores de "+valor); // se a quantidade for maior que 1 imprime o valor e a quantidade que ocorre
        
    }

espero ter ajudado

alexwebsp

Consegui fazer, se alguém precisar ai vai o código :

Agradeço a todos que tentaram me ajudar, uma feliz Páscoa para todos, fiquem com Deus em nome de Jesus.

private boolean VerificarDuplicidadelistModel() {
        Set vetor = new HashSet();
        for (int i = 0; i < listModel.getSize(); i++) {
            Object elemento = listModel.getElementAt(i);
            if (vetor.contains(elemento))
                return true;
            else
                vetor.add(elemento);
        }
        return false;
    }
Vini_Fernandes

Caro alexwebsp, recomendo voce estudar um pouco do framework Collection, lá temos disponivel muitas estruturas de dados como List, Set, Map e suas implementacoes. Como os elementos que voce deseja unicidade sao do tipo String as coisas ficam mais faceis. Todas as vezes que voce desejar que um elemento nao se repita utilize um Set, pois suas implementacoes nao incluem elementos “repetidos”. Sendo assim:

//aqui teremos uma ordenacao alfabetica
Set<String> elementos = new TreeSet<String>();
elementos.add("vinicius");
elementos.add("vinicius");
elementos.add("fabio");
elementos.add("fabio");
elementos.add("fabio");
elementos.add("bianca");
elementos.add("andre");
elementos.add("vinicius");
//verificando se os elementos favio e vinicius se repentem, alem disso os elementos 
//estao ordenados alfabeticamente
for(String s : elementos)
   System.out.println("elemento: "+s);

Ate mais

Criado 11 de abril de 2009
Ultima resposta 11 de abr. de 2009
Respostas 3
Participantes 3