21  Interfejs Comparator

  1. Napisz klasę Osoba z polami imie (String), wiek (int) i wzrost (double). Napisz klasę implementującą interfejs Comparator, która porównuje osoby na podstawie wieku. Stwórz tablicę 5 osób i posortuj ją według wieku.

  2. Napisz klasę Produkt z polami nazwa (String), cena (double) i dataWaznosci (LocalDate). Napisz klasę implementującą interfejs Comparator, która porównuje produkty na podstawie daty ważności. Stwórz listę 5 produktów i posortuj ją według daty ważności.

  3. Napisz klasę Samochod z polami marka (String), rokProdukcji (int) i cena (double). Napisz klasę implementującą interfejs Comparator, która porównuje samochody na podstawie roku produkcji. Stwórz tablicę 5 samochodów i posortuj ją według roku produkcji.

  4. Napisz klasę Pracownik z polami imie (String), pensja (double) i dataZatrudnienia (LocalDate). Napisz klasę implementującą interfejs Comparator, która porównuje pracowników na podstawie pensji. Stwórz tablicę 5 pracowników i posortuj ją według pensji.

  5. Napisz klasę Ksiazka z polami tytul (String), cena (double) i dataWydania (Date). Napisz klasę implementującą interfejs Comparator, która porównuje książki na podstawie daty wydania. Stwórz listę 5 książek i posortuj ją według daty wydania.

  6. Napisz klasę Product z polami id (typu int), name (typu String) oraz price (typu double). Zaimplementuj generyczny interfejs Comparator do porównywania obiektów po polu price (od najniższej do najwyższej ceny), a w przypadku równości po polu id. Stwórz listę 5 obiektów klasy Product i posortuj ją zgodnie z opisanym kryterium.

  7. Napisz klasę Person z polami firstName (typu String), lastName (typu String) oraz birthDate (typu LocalDate). Zaimplementuj generyczny interfejs Comparator do porównywania obiektów po polu lastName (alfabetycznie od A do Z), a w przypadku równości po polu firstName. Stwórz tablicę 5 obiektów klasy Person i posortuj ją zgodnie z opisanym kryterium.

  8. Napisz klasę Order z polami id (typu int), customerName (typu String) oraz orderDate (typu LocalDate). Zaimplementuj generyczny interfejs Comparator do porównywania obiektów po polu orderDate (od najwcześniejszej do najpóźniejszej daty), a w przypadku równości po polu id. Stwórz listę 5 obiektów klasy Order i posortuj ją zgodnie z opisanym kryterium.

  9. Napisz klasę Song z polami title (typu String), artist (typu String) oraz duration (typu int). Zaimplementuj generyczny interfejs Comparator do porównywania obiektów po polu duration (od najkrótszej do najdłuższej piosenki), a w przypadku równości po polu title. Stwórz tablicę 5 obiektów klasy Song i posortuj ją zgodnie z opisanym kryterium.

  10. Napisz klasę Student z polami id (typu int), name (typu String) oraz averageGrade (typu double). Zaimplementuj generyczny interfejs Comparator do porównywania obiektów po polu averageGrade (od najwyższej do najniższej średniej ocen), a w przypadku równości po polu name. Stwórz listę 5 obiektów klasy Student i posortuj ją zgodnie z opisanym kryterium.

  11. Napisz klasę Product z polami id (typu int), name (typu String) oraz price (typu double). Zaimplementuj dwie klasy implementujące generyczny interfejs Comparator: PriceComparator do porównywania obiektów po polu price (od najniższej do najwyższej ceny) oraz NameComparator do porównywania obiektów po polu name (alfabetycznie od A do Z). Stwórz listę 5 obiektów klasy Product i posortuj ją zgodnie z oboma kryteriami (najpierw po cenie, a następnie przy równości po nazwie).

  12. Napisz klasę Person z polami firstName (typu String), lastName (typu String) oraz birthDate (typu LocalDate). Zaimplementuj dwie klasy implementujące generyczny interfejs Comparator: LastNameComparator do porównywania obiektów po polu lastName (alfabetycznie od A do Z) oraz BirthDateComparator do porównywania obiektów po polu birthDate (od najstarszej do najmłodszej osoby). Stwórz tablicę 5 obiektów klasy Person i posortuj ją zgodnie z oboma kryteriami (najpierw po nazwisku, a następnie przy równości po dacie urodzenia).

  13. Napisz klasę Order z polami id (typu int), customerName (typu String) oraz orderDate (typu LocalDate). Zaimplementuj dwie klasy implementujące generyczny interfejs Comparator: OrderDateComparator do porównywania obiektów po polu orderDate (od najwcześniejszej do najpóźniejszej daty) oraz CustomerNameComparator do porównywania obiektów po polu customerName (alfabetycznie od A do Z). Stwórz listę 5 obiektów klasy Order i posortuj ją zgodnie z oboma kryteriami (najpierw po dacie zamówienia, a następnie przy równości po nazwie klienta).

  14. Napisz klasę Song z polami title (typu String), artist (typu String) oraz duration (typu int). Zaimplementuj dwie klasy implementujące generyczny interfejs Comparator: DurationComparator do porównywania obiektów po polu duration (od najkrótszej do najdłuższej piosenki) oraz ArtistTitleComparator do porównywania obiektów po polu artist (alfabetycznie od A do Z) i w przypadku równości po polu title. Stwórz tablicę 5 obiektów klasy Song i posortuj ją zgodnie z oboma kryteriami (najpierw po długości utworu,a przy równości po artyście i tytule).

  15. Napisz klasę Student z polami id (typu int), name (typu String) oraz averageGrade (typu double). Zaimplementuj dwie klasy implementujące generyczny interfejs Comparator: AverageGradeComparator do porównywania obiektów po polu averageGrade (od najwyższej do najniższej średniej ocen) oraz IdComparator do porównywania obiektów po polu id (od najniższego do najwyższego identyfikatora). Stwórz listę 5 obiektów klasy Student i posortuj ją zgodnie z oboma kryteriami (najpierw po średniej ocen, a następnie przy równości po identyfikatorze).