Salve,
ho un array di elementi di tipo String. Li devo disporre in ordine lessicografico crescente. Su internet ho trovato due metodi statici: uno ausiliare (maggiore) e l'altro di ordinamento (bubbleSort).
Ho creato una classe nominata BubbleSort avente i metodi statici: bubbleSort e maggiore;
codice:
public class BubbleSort()
{
public static boolean maggiore(String s1, String s2)
{
}
public static void bubbleSort(String[] a)
{
boolean finito = false, fattoscambio;
int i = 0;
int n = a.length;
while(!finito)
{
i = i + 1;
fattoscambio = false;
for(int j = 0; j < n-i; j++)
if(maggiore(a[j], a[j+1]))
{
String temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
fattoscambio = true;
}
if((!fattoscambio) || (i == n-1))
finito = true;
}
}
}
I metodi sono implementati correttamente perché li ho presi da internet e li ho controllati.
Il problema si verifica nella classe test (main):
codice:
String[] array = lista.restituisciLista();
BubbleSort.bubbleSort(array);
l'errore si verifica quando invoco: BubbleSort.bubbleSort(array).
L'eccezione che viene lanciata è: java.lang.NullPointerException
Io so che questa eccezione viene lanciata quando c'è un riferimento nullo. Ma come è possibile ?.