Employee e EmployeeManagerEmployeeLa classe Employee è  utilizzata per rappresentare i dati di un impiegato aziendale e il suo stipendio. La classe è molto semplice; possiede solo i due attributi privati name (il nome dell’impiegato) e salary (lo stipendio dell’impiegato [double]). Entrambi gli attributi sono accessibili in sola lettura.
La classe Employee  esporta pure il costruttore personalizzato che permette di inizializzare name e salary (in questo ordine).
Inoltre Employee esporta e il metodo boolean equals(Employee e) che ritorna true se i due impiegati confrontati posseggono lo stesso nome (ignora maiuscole e minuscole) e lo stesso stipendio.
EmployeeManagerServe per caricare i dati riguardanti gli impiegati da un file CSV e per trovare la media degli stipendi.
I dati sono memorizzati nella lista di Employee employees (attributo privato List<Employee>).
La classe EmployeeManager esporta i seguenti metodi:
public EmployeeManager(String csvPath)
Il costruttore personalizzato permette di definire il percorso del file CSV.
loadEmployeespublic void loadEmployees()
Carica i dati dal file CSV. Se non è possibile accedere o leggere il file, solleva una IOException. Le righe del file CSV che contengono dati non validi non vengono importate.
getEmployeespublic List<Employee> getEmployees()
Ritorna la lista (employees ) degli impiegati.
getAverageSalarypublic double getAverageSalary()
Ritorna lo stipendio medio (tra tutti quelli contenuti in employees). Se la lista è vuota ritorna -1.0.
Su ogni riga del file CSV deve essere registrato un impiegato nel formato:
<salary>;<name>
Dove:
<salary>: numero double<name>: stringa non vuota, deve contenere almeno un carattere diverso da ' ' (blank)Tutte le righe che non rispettano questo formato sono considerate come non valide e vengono ignorate dal metodo loadEmployees.
Ad esempio un file CSV valido potrebbe contenere i dati seguenti:
1250.5;Mario
200;Alb
1000.5;Luigi
8230.25;Zorro
400;Pippo