Buonasera, avrei un problema riguardante il compareTo su un ArrayList.
Vi spiego il problema:
Devo realizzare un metodo che permette di ordinare un ArrayList di tipo <Operaio> (dove questo ArrayList si trova in un costruttore di una classe chiamata Operazioni "Di seguito c'è il codice").
Devo restituire le 3 Operazioni che hanno coinvolto piu operai. La classe Operazione tiene conto degli operai che hanno partecipato a una Operazione specifica data dalla vaiabile "TIPO" dove questa contiene l'operazione svolta dall'operaio es: aratura di un terreno, una semina,taglio alberi ecc.
import java.util.*;
public class Operazioni implements Comparable <Operazioni>{
private int data;
private String tipo;
public ArrayList <Operaio> operaiPartecipano = new ArrayList <Operaio> ();
public Operazioni (int data,String tipo, ArrayList <Operaio> operaiPartecipano)
{
this.data = data;
this.tipo = tipo;
this.operaiPartecipano = new ArrayList <Operaio> (operaiPartecipano);
}
public int getData ()
{
return data;
}
public String getTipo ()
{
return tipo;
}
public ArrayList<Operaio> getOperaiPartecipano ()
{
return new ArrayList <Operaio> (operaiPartecipano);
}
@SuppressWarnings("unchecked")
public int compareTo (Operazioni o)
{
return ((Comparable<Operazioni>) operaiPartecipano).compareTo(o.getOperaiPartecipano());
}
Questa è la classe operaio
public class Operaio {
private String codiceFiscale;
private String nome;
private String residenza;
public Operaio (String codiceFiscale,String nome, String residenza)
{
this.codiceFiscale = codiceFiscale;
this.nome = nome;
this.residenza = residenza;
}
public String getCodiceFiscale ()
{
return codiceFiscale;
}
public String getNome ()
{
return nome;
}
public String getResidenza ()
{
return residenza;
}
}
quando vado a fare il compareTo mi da un errore.
Quindi la mia domanda è: come faccio a prendere le n operazioni che hanno coinvolto piu operai ? Io avevo pensato di utilizzare il compareTo ma misa che sbaglio qualche cosa, magari qualcuno di voi mi puo dare una mano e spiegare come si usa.
Grazie anticipatamente