PDA

Visualizza versione completa : (JAVA) Problema uso compareTo()


aduri
24-08-2006, 11.12.45
Salve a tutti,
questo e' il mio primo post.
Sono uno studente lavoratore e sto seguendo il corso di ingegneria dove sto
preparando l'esame su Java.
Chiedevo il vs aiuto per la soluzione di questo problema. :)

Il testo del problema posto dal prof. e' il seguente:

2. Sviluppare una classe Process che descriva un processo. Definire tre campi: un intero che
identifica il processo (pid), una stringa per il nome del processo e un intero per
l’occupazione di memoria. Definire il costruttore della classe e il metodo toString().
Implementare l’interfaccia Comparable: il confronto è fatto sulla memoria utilizzata.

Io ho sviluppato questo codice che mi da errore quando uso compareTo().
Mi ci sto picchiando da parecchio ma non riesco a capire dove sbaglio. :wall:

import java.util.*;
import java.lang.*;

class Process implements Comparable
{
int pid;
String nome;
int memoria;

public Process(int pid, String nome, int memoria) //costruttore
{
this.pid= pid;
this.nome = nome;
this.memoria = memoria;
}

public void StampaDettagli()
{
System.out.println("Processo "+pid+" Nome " + nome + " Memoria " + memoria);
}
public String toString()
{
return nome + " " + pid+" "+memoria;
}
public int compareTo(Object o){
Process tmp = (Process) o;
return memoria.compareTo(tmp.memoria);
}
// private int pid;
// private String nome;
// private int memoria;
}


public class UsoProcess
{
public static void main(String args[])
{
Process[] proc = new Process[3];

proc[0] = new Process(2,"integer", 1500);
proc[1] = new Process(6,"calc", 2500);
proc[2] = new Process(4,"sum", 2500);

System.out.println("===================");
System.out.println("Situazione processi");
System.out.println(" ");

for (int i = 0; i < 3; i++)
{
proc[i].StampaDettagli();
}

System.out.println(" ");
System.out.println(" ");
System.out.println(" ");
}
}

Grazie per l'aiuto

aduri
24-08-2006, 13.12.10
Risolto :act:
memoria e' un int non un oggetto e non ha metodo:
quindi:

return memoria > tmp.memoria ? +1 : memoria < tmp.memoria ? -1 : 0;

Comunque grazie :)

Artemistha
28-08-2006, 12.08.42
Scusa ma non ho capito... usi memoria come un oggetto... non la puoi anche allocare in Java... :mm:
aspetta... sono io che sto sbarellando...