codice:
Si realizzi una classe Java, denominata ListOfArray<E> che implementi
l'interfaccia OrderedSet<E> (mostrata nella pagina seguente). La nuova classe
ListOfArray<E> mantiene gli elementi dell'insieme all'interno di array di
dimensione fissa pari a 100. Quando lo spazio allocato nella struttura non č pił
sufficiente per contenere tutti gli elementi inseriti viene creato un nuovo array di
dimensione 100 che permette di estendere lo spazio disponibile.
Tutti gli array allocati nella struttura sono organizzati in una lista linkata semplice.
Gli elementi sono memorizzati in ordine non decrescente.
Si realizzi in seguito una classe che implementi l'interfaccia Person (mostrata nella
pagine seguente) e si fornisca un programma Java che prenda in input un file
contenente una lista di persone (specificate da nome, cognome ed etą) e restituisca
in output la medesima lista ordinata in senso non decrescente secondo i campi
cognome, nome ed etą.
L'insieme deve essere gestito attraverso una classe ListOfArray<Person>.
Input
Il file di input contiene una sequenza di stringhe, una per riga, terminanti con il
simbolo ; (punto e virgola). Ciascuna stringa contiene, in ordine, il nome il
cognome e l'etą di una persona
Output
Il file di output contiene la medesima sequenza di stringhe del file di input ordinate
in senso non decrescente, in base ai campi cognome, nome ed etą.
E le interfacce:
codice:
Di seguito č riportato il codice delle interfacce Person e OrderedSet.
public interface Person {
public void setNome(String nome);
// setta il nome della persona
public void setCognome(String cognome);
// setta il cognome della persona
public void setAnni(int anni);
// setta l'etą della persona
public String getNome();
// ritorna il nome della perona
public String getCognome();
// ritorna il cognome della persona
public int getAnni();
// ritorna l'etą della persona
public int compareTo(Person person);
// ritorna un valore maggiore di 0 se la persona ha un valore
pił grande di person; 0 se hanno due valori uguali; un intero
minore di 0 altrimenti
}
public interface OrderedSet<E> {
// ritorna true se l'insieme č vuoto
public boolean isEmpty();
// ritorna il numero di elementi contenuti nell'insieme
public int size();
// inserisce un nuovo elemento nell'insieme
public void add(E element);
// elimina il primo elemento di valore element
public void remove(E element);
// ritorna true se l'emento element č presente nell'insieme
public boolean isPresent(E element);
// ritorna l'elemento pił piccolo dell'insieme
public E getFirst();
// ritorna l'elemento pił grande dell'insieme
public E getLast();
// stampa la lista ordinata degli elementi dell'insieme
public String toString();
}
Il mio dubbio era:
codice:
Tutti gli array allocati nella struttura sono organizzati in una lista linkata semplice.
Significa secondo che devo creare degli array e poi inserirli all'interno dei nodi della lista oppure implementare la struttra array tramite la lista?
Spero la prima....