Il vettore in questione deve essere un vettore di Computer, dove Computer è una classe così definita:
- Codice:
class Computer implements Comparable<Computer>
{
int costo;
Computer(int c)
{
this.costo = c;
}
public int compareTo(Computer computer)
{
return this.costo - computer.costo;
}
public int estraiCosto()
{
return this.costo;
}
}
L'unico campo di ciascun computer è il campo costo, che è un intero (come si può ben notare )
Il problema non è tanto il Merge Sort, perchè ancora non ci sono arrivato ad implementarlo, ma il fatto che io non riesca a stampare il contenuto dell'array.
Come specifiche date dal mio prof ho:
_il riempimento del vettore deve essere fatto programmaticamente;
_per la stampa del contenuto del vettore (cioè il campo costo di ciascun computer) devo sfruttare il metodo toString() della classe Arrays.
In pratica:
- Codice:
public static void main(String[] args)
{
Computer[] array = {new Computer(5),new Computer(8),new Computer(1),new Computer(7),new Computer(4),new Computer(9)};
System.out.println("Vettore da ordinare: " + Arrays.toString(array));
}
Il problema di tutto ciò è che così facendo io stampo gli indirizzi di memoria di ciascun computer dell'array e non il campo costo di ciascun computer dell'array:
- Codice:
Vettore da ordinare: [Computer@3d4eac69, Computer@42a57993, Computer@75b84c92, Computer@6bc7c054, Computer@232204a1, Computer@4aa298b7]
Qualcuno gentilmente mi saprebbe dire dove sta il mio errore?