[Java] Stampa array con classe Arrays
Buonasera, sto svolgendo un esercizio il cui scopo è, dato un vettore, di ordinarlo tramite Merge Sort.
Il vettore in questione deve essere un vettore di Computer, dove Computer è una classe così definita:
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:
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:
Qualcuno gentilmente mi saprebbe dire dove sta il mio errore?
Il vettore in questione deve essere un vettore di Computer, dove Computer è una classe così definita:
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:
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:
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?

Risposte
Ciao,
Prova ad implementare il metodo toString dentro la classe Computer
Prova ad implementare il metodo toString dentro la classe Computer
Grazie ancora giovx24!
Sto scrivendo così tanto codice in questi giorni che mi sta iniziando a dare alla testa

Sto scrivendo così tanto codice in questi giorni che mi sta iniziando a dare alla testa


di nulla
