View Full Version : [java] ordinamento array
ho creato la classe Classe :D con il metodo compareTo per ordinarla con Arrays.sort().
il problemuccio è che mi dà un nullPointerException sulla chiamata :(
vuol dire che a è nullo?
però il confronto a == null lo passa :mc:
help! grazie, ciao!
import java.util.*;
public class prova {
public static void main(String[] args) {
Classe[] a = new Classe[20];
a[0] = new Classe(29);
a[1] = new Classe(50);
a[2] = new Classe(10);
Arrays.sort(a);
for(int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}
class Classe implements Comparable{
Classe(int b){
this.a = b;
}
int a;
public int compareTo(Object comp){
int tmp = ((Classe)comp).a;
return (this.a < tmp ?-1 : (this.a == tmp ? 0 : 1));
}
public String toString(){
StringBuffer res = new StringBuffer(a);
return res.toString();
}
}
in questa riga:
int tmp = ((Classe)comp).a;
cerchi di dereferenziare un attributo (a) di un oggetto null (comp) e quindi ottieni una NullPointerException
dovresti mettere un controllo ;)
franksisca
04-09-2005, 17:45
se fai un vettore di 20 e poi riempi solo tre oggetti, mi sembra normale che ti crei grossi problemi......
mmmmhh...
ok, grazie.
credevo troppo nella magia :sofico:
anzi, no!
ci riprovo :D
con il controllo su null ha ancora dei problemi dalle parti di sort.
mi sorge una domanda....
e se io ho un array non pieno che diavolo faccio? :cry:
mi devo riscrivere i metodi di sort per avere i controlli anche dentro?
ciao
franksisca
04-09-2005, 18:29
se ci sono null ti lancia qualche eccezione, almeno credo, sinceramente non ci ho mai pensato, ma credo che lanci eccezione NullPointerException
Per quanto riguarda i sort, si, credo che te li debba riscrivere.
ABCcletta
04-09-2005, 20:46
Tu hai istanziato soltanto tre oggetti della classe "Classe" e li hai inseriti nelle posizioni a[0], a[1] e a[2]. Le posizioni restanti non contengono una mazza, da qui la NullPointerException :D
theClimber
04-09-2005, 20:54
e se io ho un array non pieno che diavolo faccio? :cry:
Perchè non usi una Lista? con il metodo Collections.sort()?
franksisca
04-09-2005, 21:40
..... una mazza....
Certo che la definizione di un oggetto di nome mazza non mi era mai venuta in mente...... :D :D :D
Certo che sarebbe bello generare una MazzaNotFoundException.
Per non parlare poi del MazzaMalformedException :D :D :D :D :D :D
ABCcletta
04-09-2005, 21:57
Certo che la definizione di un oggetto di nome mazza non mi era mai venuta in mente...... :D :D :D
Certo che sarebbe bello generare una MazzaNotFoundException.
Per non parlare poi del MazzaMalformedException :D :D :D :D :D :D
:D:D Se reimplementi qualche struttura dati base, facci un pensierino :D
Perchè non usi una Lista? con il metodo Collections.sort()?
stavo seguendo il testo dell'esercizio. :)
sinceramente mi aspettavo che l'algoritmo di sorting controllasse se qualcosa era a null e lo sbattesse in fondo.
tutti questi gingilli di java mi stavano abituando a sbattermene di un sacco di cose, questa volta ho passato il limite :D :sofico:
ciao!
ABCcletta
05-09-2005, 00:22
stavo seguendo il testo dell'esercizio. :)
sinceramente mi aspettavo che l'algoritmo di sorting controllasse se qualcosa era a null e lo sbattesse in fondo.
tutti questi gingilli di java mi stavano abituando a sbattermene di un sacco di cose, questa volta ho passato il limite :D :sofico:
ciao!
Eh, appunto il controllo non c'è... Lui ordina l'array e non trovando nulla nella posizione successiva alla 2, lancia la NullPointerException. Devi implementare un tuo metodo di sort per risolvere la faccenda. E' molto semplice...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.