Uma estou com uma duvida!!
precisa iterar 2 listas e imprimir os valores alterados:
por exemplo:
tenho a listaA e a lista B,
eu preciso de forma dinamica iterar as 2 listas e imprimir os dados da seguinte forma:
Mas como colocar o codigo para agir desta forma?!?!?
Suponha que as listas tenham o mesmo tamanho, e que sejam na verdade ArrayList ou Vector (o que nem sempre é o caso). Se for o caso, é fácil:
if (listaA.size() == listaB.size()) {
int n = listaA.size();
for (int i = 0; i < n; ++i) {
System.out.println (listaA.get(i));
System.out.println (listaB.get(i));
}
}
Se não tiverem o mesmo tamanho, e se for uma LinkedList (onde o acesso indexado é MUITO lento, mas via iteradores é mais rápido), posto uma solução daqui a pouco.
Esse exemplo à cima funciona e é um jeito bom e funcional.
Porém o legal é começar a usar o Java 5, não sei se vocês podem utilizar esta versão mas ela é a Atual né, sendo assim vc poderia utilizar o For Each.
O problema dele é andar em DUAS listas ao mesmo tempo. Para esse tipo de coisas o “foreach” poderia ser até assim:
List<String> listaA = new ArrayList<String>();
List<String> listaB = new ArrayList<String>();
...
if (listaA.size() == listaB.size()) {
Iterator<String> it = listaB.iterator();
for (String a : listaA) {
System.out.println (a); // até aqui tudo bem...
System.out.println (itB.next()); // não me livrei de usar um iterator :(
}
}
Ou seja, fica meio “frankenstein” - moral: nem sempre é adequado usar o “for each”.