Ciao,
nell'esercizio non ho visto nessun riferimento al fatto che la lista abbia un massimo, quindi credo che non ti serva. Un oggetto di tipo List non ha massimi, quindi non mi preoccuperei di fare controlli sul numero di citta'. Allora ti scegli un oggetto che implementa l'interfaccia List, tipo ArrayList, e ci fai le operazioni che ci servono. Con una classe del genere dovresti poter fare le operazioni richieste per le citta.
codice:
public class Basedati{
private List listaCitta;
/*Crea la lista*/
public basedati(){
listaCitta = new ArrayList();
}
/*Inserisce un oggetto Citta (credo che non ti serva se usi il metodo sotto)*/
public void add(Citta l){
listaCitta.add(l);
}
/*Crea un oggetto Citta e lo inserisce*/
public void addcitta(String nome,String nazione,String provincia){
Citta l = new Citta(nome, nazione, provincia);
listaCitta.add(l);
}
/*Rimuove un oggetto Citta (hai bisogno dell'indice dell'oggetto nella lista)*/
public void removeCitta(int indexCitta) {
listaCitta.remove(indexCitta)
}
/*
* Restituisce la citta in posizione indexCitta.
* (utile insieme al metodo sotto per stampare la tabella delle citta)
*/
public Citta getCitta(int indexCitta) {
return listaCitta.get(indexCitta);
}
/* Restituisce il numero di citta */
public int countCitta() {
return listaCitta.size();
}
}
Poi da un'altra classe (quella con il main o la classe che ti fa da manager delle operazioni), chiami i vari metodi a seconda del caso. Se vuoi fare una finezza, fai estendere alla classe citta l'interfaccia comparable e implementa il compareTo: in questo modo puoi aggiungere un metodo che ti ordina la lista chiamando
codice:
Collections.sort(listaCitta);