Como comparar se dois valores não seqüenciais de um array são iguais?

4 respostas
F

Boa tarde! No código abaixo compara-se o valor de um elemento do array com o valor do elemento anterior.
Mas preciso que seja comparado com elementos aleatórios no array.

Por exemplo: tenho a lista:

  1. 150;
  2. 310;
  3. 310;
  4. 120;
  5. 150;
  6. 120;

O código abaixo só funciona para os itens 2) e 3) , porque um é anterior ao outro. Nos casos de 1) e 5) ou no caso de 4) e 6) não agrupa os valores iguais.

PrimeiroArray priAr = (PrimeiroArray)args.findObject(PrimeiroArray.class);
                
                SegundoArray segAr = new  SegundoArray();
	segAr.sort("COD_CAMPO");
		
	int valorAnterior = 0;
	for (int i = 0; i < priAr.size(); i++) {
	      Primeiro pri = (Primeiro) priAr.get(i);

	      if (pri.getCOD_CAMPO() != valorAnterior) {
		valorAnterior = pri.getCOD_CAMPO();
		segAr.add(pri);
	      }
	}

4 Respostas

B

Use um ArrayList e utilize o método indexOf para verificar se o conteúdo já está na lista. Consulte a API para ver detalhes deste método.

B
Segu um exemplo
import java.util.ArrayList;

public class Diversos {

	public static void main(String[] args) {
	
		//Exemplo 1
		ArrayList&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;();
		
		list.add(300);
		list.add(100);
		list.add(200);
		list.add(300);
		
		System.out.println(&quot;PRIMEIRO EXEMPLO&quot;);
		for(Integer i : list){
			System.out.println(&quot;&gt;&gt; &quot; + i);
		}
		
		//Exemplo 2
		ArrayList&lt;Integer&gt; list2 = new ArrayList&lt;Integer&gt;();
		
		list2.add(300);
		list2.add(100);
		list2.add(200);
		
		//irá inserir somente se não tiver na lista
		if(list2.indexOf(300) == -1){
			list2.add(300);
		}
		
		System.out.println(&quot;SEGUNDO EXEMPLO&quot;);
		for(Integer i : list2){
			System.out.println(&quot;&gt;&gt; &quot; + i);
		}
	}
}
F

Olá, o meu não aceita o parâmetro Integer:

ArrayList<Integer> list = new ArrayList<Integer>();

O que fazer??

F

Cara, deleta o que escrevi acima !!! rsrsrsr

Criado 6 de maio de 2008
Ultima resposta 7 de mai. de 2008
Respostas 4
Participantes 2