Comparable with Arrays.Sort

1

I'm having difficulty using the Comparable interface. In the TrabalhoGA class I should call the ordenaPorPontos method of the temporada2013 class that performs the comparison of the% points of this class, I need to use Pilotos to organize the array of pilots. When I run Arrays.sort I get the following error:

  

Exception in thread "main" java.lang.NullPointerException       at work.forPontos.compare (byPontos.java:21)       at java.util.TimSort.binarySort (TimSort.java:265)       at java.util.TimSort.sort (TimSort.java:190)       at java.util.TimSort.sort (TimSort.java:173)       at java.util.Arrays.sort (Arrays.java:659)       at work.time.2013.ordenaPorPontos (temporada2013.java:49)       at work.Work.GA.main (WorkGA.java:56)   Java Result: 1

Working class:

    Piloto[] pontuaram = new Piloto[30];

public void inserePilotosPontuados(String driver, String team, int points) {
    for(int i=0;i<getLast();i++){
        if(pontuaram[i].getDriver().equalsIgnoreCase(driver)){
            pontuaram[i].setPts(pontuaram[i].getPts()+points);
            return;
        }

    }
    pontuaram[getLast()] = new Piloto(driver, team, points);
}

private int getLast() {
int last = 0;

for (int i = 0; i < pontuaram.length; i++) {
    if (pontuaram[i] == null) {
        last = i;
        return last;
    }
}

return last;
}

public void ordenaPorNome(){  
    Arrays.sort(pontuaram,new porNome());  
}  

public void ordenaPorPontos(){  
    Arrays.sort(pontuaram,new porPontos());  
}  

public void gravar(File arquivo)throws IOException{  
    PrintWriter gravar = new PrintWriter(new FileWriter(arquivo));  

    for (int i=0;i<pontuaram.length;i++){ 
        gravar.print(pontuaram[i]);  
    }
    gravar.close();  
}

public void mostraNaTela(){  
    int i = 0;
    while(pontuaram[i] != null && i<pontuaram.length){
        int numero = i+1;
        System.out.println("Classificado em "+numero+"° lugar:");
        System.out.println("Nome: "+pontuaram[i].getDriver());
        System.out.println("Equipe: "+pontuaram[i].getTeam());
        System.out.println("Pontos: "+pontuaram[i].getPts());
        System.out.println("----------------------------");
        i++;
    }
}

Class OrderPoints:

    public int compare(Object obj1, Object obj2){  
    Piloto p1 = (Piloto) obj1;  
    Piloto p2 = (Piloto) obj2;  

    if (p1.getPts() == p2.getPts())  
        return 0;  
    else if (p1.getPts() > p2.getPts())  
        return -1;  
    else  
        return 1;  
  

p1 = trabajoga.Piloto@6f54c08a, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@246972f1, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@6f93ee4, p2 = trabajoga.Piloto@246972f1   p1 = trabajoga.Piloto@6f93ee4, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@6f93ee4, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@558fee4f, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@558fee4f, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@558fee4f, p2 = trabajoga.Piloto@6f93ee4   p1 = labor.Pilot@5c66b06b, p2 = labor.Pilot@252cdd20   p1 = trabajoga.Piloto@5c66b06b, p2 = trabajoga.Piloto@558fee4f   p1 = trabajoga.Piloto@5c66b06b, p2 = trabajoga.Piloto@6f93ee4   p1 = labor.Pilot@59c87031, p2 = labor.Pilot@252cdd20   p1 = trabajoga.Piloto@59c87031, p2 = trabajoga.Piloto@246972f1   p1 = trabajoga.Piloto@59c87031, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@763dcf03, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@763dcf03, p2 = trabajoga.Piloto@5c66b06b   p1 = trabajoga.Piloto@763dcf03, p2 = trabajoga.Piloto@558fee4f   p1 = labor.Pilot@53e20a9a, p2 = labor.Pilot@252cdd20   p1 = trabajoga.Piloto@53e20a9a, p2 = trabajoga.Piloto@763dcf03   p1 = trabajoga.Piloto@53e20a9a, p2 = trabajoga.Piloto@5c66b06b   p1 = trabajoga.Piloto@1d262f7c, p2 = trabajoga.Piloto@558fee4f   p1 = trabajoga.Piloto@1d262f7c, p2 = trabajoga.Piloto@53e20a9a   p1 = trabajoga.Piloto@1d262f7c, p2 = trabajoga.Piloto@763dcf03   p1 = trabajoga.Piloto@35f784d7, p2 = trabajoga.Piloto@558fee4f   Exception in thread "main" java.lang.NullPointerException   p1 = trabajoga.Piloto@35f784d7, p2 = trabajoga.Piloto@59c87031   p1 = trabajoga.Piloto@35f784d7, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@35f784d7, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@d325aef, p2 = trabajoga.Piloto@558fee4f   p1 = trabajoga.Piloto@d325aef, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@d325aef, p2 = trabajoga.Piloto@35f784d7   p1 = trabajoga.Piloto@64f007ad, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@64f007ad, p2 = trabajoga.Piloto@763dcf03   p1 = trabajoga.Piloto@64f007ad, p2 = trabajoga.Piloto@558fee4f   p1 = trabajoga.Piloto@64f007ad, p2 = trabajoga.Piloto@1d262f7c   p1 = trabajoga.Piloto@4a8822a0, p2 = trabajoga.Piloto@558fee4f   p1 = trabajoga.Piloto@4a8822a0, p2 = trabajoga.Piloto@6f54c08a   p1 = trabajoga.Piloto@4a8822a0, p2 = trabajoga.Piloto@246972f1       at work.forPontos.compare (byPontos.java:22)   p1 = trabajoga.Piloto@2f995c9a, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@2f995c9a, p2 = trabajoga.Piloto@59c87031       at java.util.TimSort.binarySort (TimSort.java:265)   p1 = trabajoga.Piloto@2f995c9a, p2 = trabajoga.Piloto@4a8822a0   p1 = trabajoga.Piloto@7d8e9adf, p2 = trabajoga.Piloto@252cdd20   p1 = trabajoga.Piloto@7d8e9adf, p2 = trabajoga.Piloto@59c87031   p1 = trabajoga.Piloto@7d8e9adf, p2 = trabajoga.Piloto@4a8822a0   p1 = trabajoga.Piloto@7d8e9adf, p2 = trabajoga.Piloto@2f995c9a   p1 = trabajoga.Piloto@1d59e6df, p2 = trabajoga.Piloto@35f784d7   p1 = trabajoga.Piloto@1d59e6df, p2 = trabajoga.Piloto@246972f1       at java.util.TimSort.sort (TimSort.java:190)   p1 = trabajoga.Piloto@1d59e6df, p2 = trabajoga.Piloto@2f995c9a   p1 = trabajoga.Piloto@1d59e6df, p2 = trabajoga.Piloto@7d8e9adf   p1 = trabajoga.Piloto@79444986, p2 = trabajoga.Piloto@35f784d7   p1 = trabajoga.Piloto@79444986, p2 = trabajoga.Piloto@4a8822a0   p1 = trabajoga.Piloto@79444986, p2 = trabajoga.Piloto@7d8e9adf       at java.util.TimSort.sort (TimSort.java:173)   p1 = trabajoga.Piloto@79444986, p2 = trabajoga.Piloto@2f995c9a   p1 = null, p2 = work.Pilot@d325aef       at java.util.Arrays.sort (Arrays.java:659)       at work.time.2013.ordenaPorPontos (temporada2013.java:49)       at work.Work.GA.main (WorkGA.java:56)   Java Result: 1

    
asked by anonymous 02.10.2014 / 01:31

1 answer

1

byPontos.java:21

A variable referenced in the class by Points.java, at line 21, is null. Just check or change logic to make sure it does not get here with null value.

    
02.10.2014 / 15:39