Problema de logica com Arraylist

estou com um probleminha com esse codigo
eu quero jogar um arraylist dentro do outro só que ao contrario

ArrayList teste = new ArrayList();
ArrayList teste2 = new ArrayList();

	for (int i = 0; i < 50; i++) {
		teste.add(i);

	}

	System.out.println(teste);

		for ( int i = 50; i > teste.size();i--){
			teste2.add(teste.get(i));
		}
		System.out.println(teste2);
}

2 perguntas

  • qual é o valor de ‘teste.size()’ ?
  • onde esta o valor de indice 50 no arraylist teste ?

Na biblioteca padrão do java existe uma classe utilitária chamada Collections para nos auxiliar em algumas tarefas comuns em coleções.
Para inverter uma coleção utilize o método reverse da classe Collections exemplo:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Teste {
	
	public static void main(String[] args) 
	{
		 ArrayList<Integer> teste = new ArrayList<Integer>();

		 for (int i = 0; i < 50; i++) {
		    teste.add(i);

		 }
		 System.out.println(teste);

		 ArrayList<Integer> teste2 = new ArrayList<Integer>(teste);
		 Collections.reverse(teste2);

		 System.out.println(teste2);
	}
}

Dê sempre preferência aos métodos da biblioteca do java. Com certeza ele já foi escrito de uma forma otimizada e bem melhor do que normalmente escreveriamos no dia a dia.

Outra classe importante é a Arrays, para operações com … arrays.

realmente a melhor solução para este caso é você usar a classe Collections (não confunda com a interface Collection).

Valew

obrigado pela ajuda conssegui ehehe