programmazione-java/src/Nomi/Anagrafe.java

65 lines
1.6 KiB
Java
Raw Permalink Normal View History

2017-01-08 13:59:54 +00:00
import java.util.Scanner;
2017-01-08 17:19:25 +00:00
import java.util.Set;
import java.util.TreeSet;
2017-01-08 13:59:54 +00:00
import java.io.PrintStream;
2017-01-08 17:19:25 +00:00
import java.util.ArrayList;
import java.util.Comparator;
2017-01-08 13:59:54 +00:00
public class Anagrafe{
public Anagrafe(Scanner sc)throws Exception{
2017-01-08 17:19:25 +00:00
Comparator<Persona> cmp=new PersonaComparator();
registro = new TreeSet<Persona>(cmp);
2017-01-08 13:59:54 +00:00
Persona p = Persona.read(sc);
while(p!=null){
registro.add(p);
p=Persona.read(sc);
}
}
private Anagrafe(ArrayList<Persona> registro){
2017-01-08 17:19:25 +00:00
//this.registro=registro;
2017-01-08 13:59:54 +00:00
}
public void print(PrintStream ps){
for(Persona p: registro){
p.print(ps);
}
}
public Anagrafe filtroNome(String nome){
ArrayList<Persona> ar = new ArrayList<Persona>();
for(Persona p: registro){
if(p.getNome().equals(nome))
ar.add(p);
}
return new Anagrafe(ar);
}
public Anagrafe filtroCognome(String cognome){
ArrayList<Persona> ar = new ArrayList<Persona>();
for(Persona p: registro){
if(p.getCognome(). equals(cognome))
ar.add(p);
}
return new Anagrafe(ar);
}
2017-01-08 17:19:25 +00:00
private Set<Persona> registro;
}
2017-01-08 13:59:54 +00:00
2017-01-08 17:19:25 +00:00
class PersonaComparator implements Comparator<Persona>{
public int compare(Persona p1, Persona p2){
int cmp=p1.getDataDiNascita().compareTo(p2.getDataDiNascita());
if(cmp==0){
cmp=p1.getCognome().compareTo(p2.getCognome());
if(cmp==0){
cmp=p1.getNome().compareTo(p2.getNome());
}
}
return cmp;
}
2017-01-08 13:59:54 +00:00
}