diff --git a/src/Mediana.java b/src/Mediana.java new file mode 100644 index 0000000..89f33df --- /dev/null +++ b/src/Mediana.java @@ -0,0 +1,29 @@ +import java.util.Collections; +import java.util.Comparator; +import java.util.ArrayList; +import java.util.Random; + +public class Mediana{ + public static void main(String [] args){ + + ArrayList list =new ArrayList(); + Random rand = new Random(); + for(int i=0; i cmp=new IntComparator(); + Collections.sort(list, cmp); + + for(Integer item: list){ + System.out.println(item); + } + + } + +} + +class IntComparator implements Comparator{ + public int compare(Integer i1, Integer i2){ + return (-1)*i1.compareTo(i2); + } +} \ No newline at end of file diff --git a/src/Nomi/Anagrafe.java b/src/Nomi/Anagrafe.java index 8f80bc9..09b17b5 100644 --- a/src/Nomi/Anagrafe.java +++ b/src/Nomi/Anagrafe.java @@ -1,11 +1,15 @@ import java.util.Scanner; -import java.util.ArrayList; +import java.util.Set; +import java.util.TreeSet; import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Comparator; public class Anagrafe{ public Anagrafe(Scanner sc)throws Exception{ - registro = new ArrayList(); + Comparator cmp=new PersonaComparator(); + registro = new TreeSet(cmp); Persona p = Persona.read(sc); while(p!=null){ registro.add(p); @@ -14,7 +18,7 @@ public class Anagrafe{ } private Anagrafe(ArrayList registro){ - this.registro=registro; + //this.registro=registro; } public void print(PrintStream ps){ @@ -43,6 +47,19 @@ public class Anagrafe{ } - private ArrayList registro; + private Set registro; +} + +class PersonaComparator implements Comparator{ + 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; + } } \ No newline at end of file diff --git a/src/Nomi/Persona.java b/src/Nomi/Persona.java index 41af711..0f01ed3 100644 --- a/src/Nomi/Persona.java +++ b/src/Nomi/Persona.java @@ -49,6 +49,7 @@ public class Persona{ ps.println(nome); ps.println(cognome); ps.println(sdf.format(dataDiNascita)); + ps.println("*****"); } diff --git a/src/Nomi/Test.java b/src/Nomi/Test.java index 7bc84e9..181c67c 100644 --- a/src/Nomi/Test.java +++ b/src/Nomi/Test.java @@ -7,7 +7,5 @@ public class Test{ Scanner sc = new Scanner(fl); Anagrafe an=new Anagrafe(sc); an.print(System.out); - System.out.println("*******"); - an.filtroCognome("due").filtroNome("noemi").print(System.out); } } \ No newline at end of file diff --git a/src/Nomi/persone.dat b/src/Nomi/persone.dat index 490bf78..01d202f 100644 --- a/src/Nomi/persone.dat +++ b/src/Nomi/persone.dat @@ -1,9 +1,18 @@ -pappa -papsp +Raffaele +Mignone 12/12/1999 -dffdfd -dhdhdh +Aaa +Manganiello 14/08/1990 +Salvatore +Manganiello +14/08/1990 +Francesco +Martignetti +15/08/1990 +Raffaele +Mignone +12/12/2000 noemi dhhf 13/05/1200