Varrendo uma Arraylist - tirando elementos duplicados

4 respostas
P

Pessoal, to tentando varrer uma ArrayLis, de forma que não traga elementos duplicados.

Fiz o método abaixo, mas não funciona de forma correta.

public void varrerArrayListPac_Codigo (ArrayList pac_codigo)
{

paciente.clear();
      
int quant=0;
quant=pac_codigo.size();
int i;

Iterator it = pac_codigo.iterator();

while(it.hasNext()){

cod = ((Integer) it.next()).intValue();
   paciente.add(new Integer(cod));

   for(i=1;i<quant;i++){
   cod_compara = ((Integer) it.next()).intValue();

  while(it.hasNext())
     {
      paciente.add(new Integer(cod_compara));
     }           
       
 }
}

}

4 Respostas

L

Não me leva a mau, mas vou ser bem franco com vc

Cara, não tem lógica nenhuma esse código ai… da uma boa estudada em lógica, porque o treco ta feio.

List<Integer> pacCodigo = new ArrayList<Integer>();
  pacCodigo.add(1);
  pacCodigo.add(2);
  pacCodigo.add(1);
  List<Integer> paciente = new ArrayList<Integer>();
  for (Integer i : pacCodigo) {
    if (!paciente.contains(i))
      paciente.add(i);
  }
  for(Integer i : paciente) {
    System.out.println(i);
}
C

Se quer trabalhar com uma estrutura de dados que não suporte duplicidade, utilize Set.

P

Encontrei 2 métodos, usando o HashSet e o Set, mas nenhum deles me retorna resultado.Alguém pode me ajudar?

public void removeDuplicateWithOrder(ArrayList lista)

{

Set set = new HashSet();

List newList = new ArrayList();

for (Iterator iter = lista.iterator();    iter.hasNext(); ) {

Object element = iter.next();

if (set.add(element))

newList.add(element);

}
lista.clear();
lista.addAll(newList);

}


public void varrerArrayListPac_Codigo (ArrayList pacienteCod)
{

HashSet a = new HashSet(pacienteCod);

pacienteCod.clear();

pacienteCod.addAll(a);

}
L
Set<Integer> s = new HashSet<Integer>();
		s.add(1);
		s.add(2);
		s.add(1);
		for(Integer i : s) {
			System.out.println(i);
		}

E le
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#clear()
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html

Criado 26 de outubro de 2007
Ultima resposta 30 de out. de 2007
Respostas 4
Participantes 3