tenho 2 listas (List ) gostaria de pegar os valores iguais a estas duas e inserir numa terceira lista, qual forma mais rápida de fazer isso
ArrayList
2 Respostas
Se vc puder usar Sets ao invés de Lists vc vai poder fazer isso facilmente.
// usei LinkedHashSet para manter a ordem de inserção.
// caso isso seja irrelevante, vc pode usar HashSet
Set<String> set1 = new LinkedHashSet<String>();
Set<String> set2 = new LinkedHashSet<String>();
set1.add( "um" );
set1.add( "dois" );
set1.add( "três" );
set1.add( "quatro" );
set2.add( "dois" );
set2.add( "quatro" );
set2.add( "seis" );
set2.add( "oito" );
System.out.println( "antes:" );
System.out.println( set1 );
System.out.println( set2 );
// intersecção
set1.retainAll( set2 );
System.out.println( "depois:" );
System.out.println( set1 );
System.out.println( set2 );
Vc pode também "transformar" suas listas em conjuntos e então usar o retainAll. O método retainAll faz a intersecção dos dois conjuntos, que é o que vc está precisando.
[]´s
Vlw
Criado 1 de novembro de 2009
Ultima resposta 1 de nov. de 2009
Respostas 2
Participantes 2