Problema ao pegar valor de um arraylist

olá a todos,
estou de novo com problemas, tenho um ArrayList com o nome lista, e quero pegar o valor de uma das posiçoes para fazer outros calculos,
como faço isso?

int p = 2,
int valorP=0;
      	
System.out.print("posição 2 :"+lista.get(p)); // ATE AQUI NAO HA PROBLEMA, IMPRIME O VALOR QUE SE ENCONTRA NA POSIÇÃO 2
 valorP= lista.get(2);//JA AQUI QUANDO EU TENTO PEGAR O VALOR QUE SE ENCONTRA NA POSIÇÃO 2, DÁ ERRO DE INCOMPATIBILIDADE

o porque do erro ?
como eu faço da forma correcta?

desde já agradeço toda e qualquer ajuda.

Opa!

Provavelmente o tipo do objeto que está na lista é diferente com o tipo que está tentando receber o valor. Ex: Passar um double para um int.
Você pode fazer um Cast, mas cuidado: Se precisar de precisão do valor, recomento alterar o tipo da variavel que vai receber o valor da lista.

int p = 2,
int valorP=0;
      	
System.out.print("posição 2 :"+lista.get(p)); 
valorP= (int) lista.get(2);//CAST

Espero ter ajudado! :wink:

Declare corretamente o ArrayList. Isso remove alguns problemas. Exemplo:

List<Integer> lista = new ArrayList<Integer>();
......
 int p = 2,  
 int valorP=0;  
           
System.out.print("posição 2 :"+lista.get(p)); // ATE AQUI NAO HA PROBLEMA, IMPRIME O VALOR QUE SE ENCONTRA NA POSIÇÃO 2  
valorP= lista.get(2);

o arrayList tem valores de tipo BigInteger, acho que é por isso que ha incompatibilidade, mas como eu pego o valor?
eu preciso fazer uns calculos com cada valor do arraylist.

Usa o método que te informa o tamanho da lista e faz um for!
http://www.guj.com.br/posts/list/39689.java

Espero ter ajudado! :wink:

[quote=leandro550s]o arrayList tem valores de tipo BigInteger, acho que é por isso que ha incompatibilidade, mas como eu pego o valor?
eu preciso fazer uns calculos com cada valor do arraylist.[/quote]

Espera um pouco. Esse ArrayList contém apenas valores de BigInteger? Se tiver, então você o declara como:

   List<BigInteger > lista = new ArrayList<BigInteger >();  
   ......  
   int p = 2,    
   BigInteger valorP=BigInteger.ZERO;    
                 
   System.out.print("posição 2 :"+lista.get(p)); // ATE AQUI NAO HA PROBLEMA, IMPRIME O VALOR QUE SE ENCONTRA NA POSIÇÃO 2    
   valorP= lista.get(2);  

Não crie arraylists com objetos de vários tipos, a menos que saiba o que está fazendo.

olha thingol nao sei se xtou digitando mal, mas esta dando erro

 List<BigInteger > lista = new ArrayList<BigInteger >();    
 ......    
 int p = 2,      
 BigInteger valorP=BigInteger.ZERO;      // ERRO  ';' expected
                 
 System.out.print("posição 2 :"+lista.get(p)); // ATE AQUI NAO HA PROBLEMA, IMPRIME O VALOR QUE SE ENCONTRA NA POSIÇÃO 2      
 valorP= lista.get(2);  

desculpa, o erro era pork faltava um ponto e virgula,
mas mesmo assim continua a dar erro de incompatibilidade

Obrigado por tudo, consegui resolver com a vossa ajuda.