Ok, basta vi dò tutto il codice della classe Frigo. (La classe Alimento in realtà si chiama AlimentoFrigo):
package cucina;
import java.util.ArrayList;
import alimenti.*;
/**
* Classe che crea un frigorifero
* @author 3097536
*/
public class Frigo implements Cloneable{
private ArrayList<AlimentoFrigo> alimenti;
/**
* Crea un frigo con un insieme di alimenti
* @param a ArrayList di alimenti
*/
public Frigo(ArrayList<AlimentoFrigo> a)
{
alimenti = a;
}
/**
* Aggiunge un alimento alla lista di alimenti
* @param a alimento da agiungere
*/
public void aggiungiAlimento(AlimentoFrigo a){
alimenti.add(a);
}
/**
* Rimuove un alimento dalla lista degli alimenti
* @param a alimento da rimuovere
*/
public void rimuoviAlimento(AlimentoFrigo a)
{
alimenti.remove(a);
}
/**
* Restituisce gli alimenti presenti nel frigo
* @return un ArrayList di alimenti
*/
public ArrayList<AlimentoFrigo> getAlimenti()
{
return alimenti;
}
/**
* Ordina la lista di alimenti da quello che scade prima a quello che scade per ultimo
* usando l'algoritmo Inserction Sort
*/
public void ordinaAlimenti()
{
for(int j=2;j<alimenti.size();j++)
{
AlimentoFrigo key = alimenti.get(j);
int i = j-1;
while(i>0 && key.getScadenza().before(alimenti.get(i).getScaden za()))
{
alimenti.set(i+1, alimenti.get(i));
i = i-1;
}
alimenti.set(i+1, key);
}
}
public Object clone(){
try{
Frigo f = (Frigo) super.clone();
for(int i=0;i<alimenti.size();i++){
f.rimuoviAlimento(alimenti.get(i));
f.aggiungiAlimento((AlimentoFrigo) alimenti.get(i).clone());
}
return f;
}
catch (CloneNotSupportedException e){
return null;
}
}
}