Eu tenho um trabalho que consiste em ordenar um array de objectos usando o merge sort, estou tentando ordenar usando o atributo codigo que é um inteiro, so que apanho sepre uma excepcao do tipo: java.lang.NullPointerException…
alguma idea…
[code]public class Universidade {
private int cod;
private String nome;
public Universidade() {}
public Universidade(int cod, String nome) {
this.cod = cod;
this.nome = nome;
raiz = null;
dir = null;
}
public int getCod() {
return cod;
}
public void setCod(int cod) {
this.cod = cod;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public class Tabela {
int last;
Universidade[]univ=new Universidade[10];
public Tabela(){
this.last=-1;
univ=new Universidade[10];
}
public boolean isEmpty(){
if(last==-1)
return true;
return false;
}
public boolean isFull(){
if(last==univ.length-1)
return true;
return false;
}
//metodo que insere uma universidade sequencialmente
public void InsertUniv(Universidade a){
if(!isFull()){
last++;
univ[last]=a;
}
else
System.out.println("Tabela Cheia");
}
public void viewUniversidades(){
for (int i = 0; i < last+1; i++) {
System.out.println((i+1)+" - "+univ[i].getNome());
}
}
public void mergeSort()
{
Universidade[]u = new Universidade[this.univ.length];
recMergeSort(u, 0, this.last);
}
private void recMergeSort(Universidade[]u, int min, int max)
{
if(min == max)
return;
else
{
int mid = (min+max) / 2;
recMergeSort(u, min, mid);
recMergeSort(u, mid+1, max);
merge(u, min, mid+1, max);
}
}
private void merge(Universidade[]u, int baixo,int alto, int max)
{
int j = 0;
int lowerBound = baixo;
int mid = alto-1;
int n = max-lowerBound+1;
while(baixo <= mid && alto <= max)
if( univ[baixo].getCod() < univ[alto].getCod())
u[j++] = u[baixo++];
else
u[j++] = u[alto++];
while(baixo <= mid)
u[j++] = u[baixo++];
while(alto <= max)
u[j++] = u[alto++];
for(j=0; j<n; j++)
this.univ[lowerBound+j] = u[j];
}
}
[/code]
Por favor ajudem, coloquei as mnhas classes acima pra me ajudarem a identificar o problema…