Esta dando o seguinte erro: java.lang.NullPointerException

…Boa Tarde!!!Gostaria de ajuda para resolver este problema, pois não sei onde esta o erro!!!
esta dando o seguinte erro no Compilador java.lang.NullPointerException… e não sei porque!!!

o codigo esta logo abaixo!!

public class teste1 {
          int[] posicao;
          
      
    public void teste(){
       
      try{
        for(int i=0;i<=20;i++){
        posicao[i]=(int) Math.random();
             
        
        }

        }catch(NullPointerException e){
         System.out.println(e);
         }


}
}

Desde já, muito obrigado!!

Inicialize a variavel.

int[] posicao = new int[20];

você deve inicializar o array antes de usá-lo:

[code] public class teste1 {
int[] posicao;

    public void teste(){  
         
      posicao = new int[20];  

      try{  
        for(int i=0;i<=20;i++){  
        posicao[i]=(int) Math.random();  
               
          
        }  
  
        }catch(NullPointerException e){  
         System.out.println(e);  
         }  
  
  
}  
}  [/code]

Tem um outro problema ai, se vc inicializar desta forma

int[] posicao = new int[20]; 

e fizer um for de

for(int i=0;i<=20;i++){ posicao[i]=(int) Math.random();

vai dar exception tb pois seu for vai iterar de 0 a 20 o que da um total de 21 posições e seu array tem somente 20 posições.

mude o for para

for(int i=0;i<20;i++){ posicao[i]=(int) Math.random();

O método Math.random() sorteia um número entre 0 e 1. Ex: 0.8315597754352334

Faça assim:

for(int i=0;i<=20;i++){    
        int rnd = Math.round(Math.random() * 20);// De preferência, multiplique pela a propriedade [b]length[/b] do vetor.
        posicao[i]= rnd;
}

Ok, muito obrigado pela Ajuda!!!

vlw!!