[RESOLVIDO] Como checkar se existe mais de uma vez?

6 respostas
vinnyparker

Ola pessoal. To aqui com uma duvida:
Tenho um banco de dados com cadastro de funcionarios.
na tabela funcionarios, eu tenho varios cadastros, com dados documentais e tal.
Eu preciso saber se existe cpf duplicado, e tomar uma decisao a respeito disso.
Entao pensei numa lista.
Essa lista seria alimentada da seguinte forma:

List <String> listaCpf = new ArrayList<Strng>();
 
if(listaCpf.contains(cnpjCpf){
	cnpjCpf = cnpjCpf + "-" + matricula;
}

o problema eh que Sempre vai haver um cnpjcpf ali.
Eu preciso eh que ele concatene o cnpjcpf com a matricula, se o cpf existir mais de uma vez na lista.
Como eu faço isso?
Agradeço desde já a quem puder me ajudar

6 Respostas

Leandro_M
Não sei se entendi o que você quer. Veja se é isso.
List <String> listaCpf = new ArrayList<Strng>();  
  
if(listaCpf.contains(cnpjCpf){
    listaCpf.remove(cnpjCpf); // <-- Remove da lista
    cnpjCpf = cnpjCpf + "-" + matricula;
    listaCpf.add(cnpjCpf); // <-- Adiciona na lista
}
Flw
vinnyparker

eh mais ou menos.
na tabela eu tenho por exemplo, 12x o cadastro do mesmo funcionario,
O que e quero é checar se o cpf desse funcionario esta na lista mais de uma vez, se tiver, ele junta o cpf e a matricula.

Esse codigo postado por mim, seria um metodo que alimentaria a lista, e cada vez que o resultSet fosse alimentado, checava se o cpf esta mais de uma vez na lista

Leandro_M
Este método retorna o número de ocorrência de um determinado valor em um objeto List
public int ocorrencias(List<String> list, String busca) {

        int ocor = 0;

        for (int i = 0; i < list.size(); i++) {
            if (list.contains(busca)) {
                list.remove(i);
                list.add(i, String.valueOf(System.currentTimeMillis()));
                ocor++;
                /*if(ocor >1){
                 break;
                 }*/
            }
        }
        return ocor;
    }
Agora acho que é só adequar a sua necessidade.

Abs

vtr002

é um trabalho com 2 listas:
Uma com sua coleção
E uma inicialmente vazia
Você vai passando os itens da lista de funcionarios e vai colocando eles na outra lista. Nesse momento que você checa se ja tem.

Leandro_M

Essa idéia aí do vtr002 também é muito boa.

vinnyparker
Consegui de uma maneira mais facil
private Set&lt;String&gt; cpfList = new HashSet&lt;String&gt;(); 

  String recebeCpf = resultSet.getString("cpf");

if (!cpfList.contains(recebeCpf)) {
      cpfList.add(cnpjCpf);
    } else {
      cnpjCpf = cnpjCpf + "-" + matricula;
    }
Criado 31 de maio de 2013
Ultima resposta 4 de jun. de 2013
Respostas 6
Participantes 3