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