package pl.edu.uwm.wmii.dobrenkocezary.labolatorium10; import java.time.LocalDate; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class test { public static void main(String[] args) { Osoba obj1 = new Osoba("Bonzo",1997,11,12); Osoba obj2 = new Osoba("Kobra",1995,01,22); System.out.println(obj1.toString()); System.out.println(obj2.toString()); System.out.println(obj1.equals(obj1)); System.out.println(obj1.equals(obj2)); System.out.println(obj1.compareTo(obj1)); System.out.println(obj1.compareTo(obj2)); List lista = new ArrayList(); Osoba l1 = new Osoba("AAA",1998,11,12); Osoba l2 = new Osoba("AAA",1997,11,12); Osoba l3 = new Osoba("CCC",1992,11,12); Osoba l4 = new Osoba("DDD",1992,11,12); Osoba l5 = new Osoba("Dobrenko",1997,9,9); lista.add(l1); lista.add(l2); lista.add(l3); lista.add(l4); lista.add(l5); for(Osoba o : lista) { System.out.println(o.toString()); } System.out.println("-------------------------------"); Collections.sort(lista); } } class Osoba> implements Comparable, Cloneable { public Osoba(String Nazwisko, int Rok, int Miesiac, int Dzien){ this.Nazwisko = Nazwisko; this.DataUrodzenia = LocalDate.of(Rok, Miesiac, Dzien); } @Override public int compareTo(T Osoba){ return Osoba.compareTo(Osoba); } public int compareTo(Osoba other) { int cmp = 0; if (other.Nazwisko != this.Nazwisko){ cmp++; } if (other.DataUrodzenia.compareTo(this.DataUrodzenia) != 0){ cmp++; } return cmp; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Osoba other = (Osoba) obj; if (Nazwisko == null) { if (other.Nazwisko != null) return false; } else if (!Nazwisko.equals(other.Nazwisko)) return false; if (DataUrodzenia != other.DataUrodzenia) return false; return true; } public String toString() { return this.getClass().getSimpleName() + "[" + this.Nazwisko + " , " + this.DataUrodzenia + "]"; } private T t; private LocalDate DataUrodzenia; private String Nazwisko; }