Preciso comparar duas listas feitas no LinkedList.
E se um numero da lista A contém tambem na lista B, este numero deve ser apagado de A.
Tentei de várias formas, mas não achei como fazer isto.
Alguem pode me audar ?
Preciso comparar duas listas feitas no LinkedList.
E se um numero da lista A contém tambem na lista B, este numero deve ser apagado de A.
Tentei de várias formas, mas não achei como fazer isto.
Alguem pode me audar ?
tentou fazer algo???
Mas na pior maneira você faz um for dentro do outro e roda as 2 listas procurando valores iguais e depois apaga… no BruteForce mesmo[/quote]
http://jakarta.apache.org/commons/collections/api-release/index.html
Da uma olhada na classe CollectionUtil, não tem exatamente o que vc quer, mas tem uns métodos auxiliares que podem te ajudar…
Se não quizer usar o apache collections, eu acho que na api padrão não tem nada nesse estilo (comparar duas listas ou eliminar assim direto os elementos em comum), da para usar Arrays.equals(), mas ai vc tem que converter as duas listas para array (método toArray()) e para elas serem iguais, os elementos devem estar na mesma posição, ou seja: { 1, 2, 3 } != {1, 3, 2 }
A forma que o Suelmar falou pode ser assim:
for(Integer i : lB) {
if(lA.contains(i))
lA.remove(i);
}
Mas sinceramente, existem inumeras formas de fazer isso…
Não consigo fazer funcionar de nenhuma maneira descentemente.
Este aqui consegue tirar até um igual, mas quando tem dois iguais dá pau !
[code]
for (int i = 0; i < clone.size(); i++) {
for (int j = 0; j < Fechado.size(); j++) {
Valor1.append(clone.get(i));
Valor2.append(Fechado.get(j));
if((String.valueOf(Valor1)).equals(String.valueOf(Valor2))){
link1[count] = i;
count++;
}
Valor1.delete(0, Valor1.length());
Valor2.delete(0, Valor2.length());
}
}
for(int i = 0; i < count; i++) {
clone.remove(link1[i]);
}[/code]