20  Interfejs Comparable

  1. Napisz klasę Student, która zawiera pola: name (typu String), averageGrade (typu double) i yearOfBirth (typu int). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Student były sortowane malejąco według średniej ocen. Stwórz listę tablicową 5 obiektów klasy Student i posortuj ją według sprecyzowanego kryterium.

  2. Napisz klasę Employee, która zawiera pola: name (typu String), salary (typu double) i employmentDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Employee były sortowane rosnąco według pensji. Stwórz listę tablicową 5 obiektów klasy Employee i posortuj ją według sprecyzowanego kryterium.

  3. Napisz klasę Client, która zawiera pola: name (typu String), clientNumber (typu int) i lastLogin (typu Date). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Client były sortowane malejąco według daty ostatniego logowania. Stwórz listę tablicową 5 obiektów klasy Client i posortuj ją według sprecyzowanego kryterium.

  4. Napisz klasę Product, która zawiera pola: name (typu String), price (typu double) i productionDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Product były sortowane rosnąco według daty produkcji. Stwórz listę tablicową 5 obiektów klasy Product i posortuj ją według sprecyzowanego kryterium.

  5. Napisz klasę Person, która zawiera pola: name (typu String), height (typu int) i dateOfBirth (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Person były sortowane malejąco według wzrostu. Stwórz listę tablicową 5 obiektów klasy Person i posortuj ją według sprecyzowanego kryterium.

  6. Napisz klasę Book, która zawiera pola: title (typu String), numberOfPages (typu int) i publicationDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Book były sortowane malejąco według liczby stron. Stwórz tablicę 4 obiektów klasy Book i posortuj ją według sprecyzowanego kryterium.

  7. Napisz klasę Car, która zawiera pola: brand (typu String), mileage (typu int) i yearOfProduction (typu int). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Car były sortowane rosnąco według przebiegu. Stwórz tablicę 4 obiektów klasy Car i posortuj ją według sprecyzowanego kryterium.

  8. Napisz klasę FoodProduct, która zawiera pola: name (typu String), price (typu double) i expirationDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy FoodProduct były sortowane rosnąco według daty ważności. Stwórz tablicę 4 obiektów klasy FoodProduct i posortuj ją według sprecyzowanego kryterium.

  9. Napisz klasę Music, która zawiera pola: title (typu String), artist (typu String) i releaseYear (typu int). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Music były sortowane malejąco według roku wydania. Stwórz tablicę 4 obiektów klasy Music i posortuj ją według sprecyzowanego kryterium.

  10. Napisz klasę Item, która zawiera pola: name (typu String), weight (typu double) i price (typu double). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Item były sortowane rosnąco według wagi. Stwórz tablicę 4 obiektów klasy Item i posortuj ją według sprecyzowanego kryterium.

  11. Napisz klasę Student, która zawiera pola: name (typu String), averageGrade (typu double) i yearOfStudy (typu int). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Student były sortowane według jednego kryterium: malejąco według średniej ocen, a przy równości sortowane były rosnąco według roku studiów. Stwórz tablicę 4 obiektów klasy Student i posortuj ją według sprecyzowanego kryterium.

  12. Napisz klasę Order, która zawiera pola: productName (typu String), quantity (typu int) i unitPrice (typu double). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Order były sortowane według jednego kryterium: malejąco według ceny jednostkowej, a przy równości sortowane były rosnąco według ilości. Stwórz listę tablicową 4 obiektów klasy Order i posortuj ją według sprecyzowanego kryterium.

  13. Napisz klasę Client, która zawiera pola: name (typu String), balance (typu double) i lastPurchaseDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Client były sortowane według jednego kryterium: malejąco według salda, a przy równości sortowane były rosnąco według daty ostatnich zakupów. Stwórz listę tablicową 4 obiektów klasy Client i posortuj ją według sprecyzowanego kryterium.

  14. Napisz klasę Course, która zawiera pola: name (typu String), numberOfHours (typu int) i price (typu double). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Course były sortowane według jednego kryterium: rosnąco według liczby godzin, a przy równości sortowane były malejąco według ceny. Stwórz tablicę 4 obiektów klasy Course i posortuj ją według sprecyzowanego kryterium.

  15. Napisz klasę Product, która zawiera pola: name (typu String), price (typu double) i expirationDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Product były sortowane według jednego kryterium: malejąco według daty ważności, a przy równości sortowane były rosnąco według ceny. Stwórz listę obiektów klasy Product i posortuj ją według sprecyzowanego kryterium. Następnie wyświetl posortowaną listę na ekranie.

  16. Napisz klasę Car, która zawiera pola: brand (typu String), model (typu String) i registrationNumber (typu String). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Car były sortowane według jednego kryterium: rosnąco według długości numeru rejestracyjnego. Stwórz tablicę 4 obiektów klasy Car i posortuj ją według sprecyzowanego kryterium.

  17. Napisz klasę Employee, która zawiera pola: firstName (typu String), lastName (typu String) i position (typu String). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Employee były sortowane według jednego kryterium: rosnąco według długości nazwiska. Stwórz listę tablicową 4 obiektów klasy Employee i posortuj ją według sprecyzowanego kryterium.

  18. Napisz klasę Movie, która zawiera pola: title (typu String), director (typu String) i genre (typu String). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Movie były sortowane według jednego kryterium: rosnąco według długości tytułu. Stwórz listę tablicową 4 obiektów klasy Movie i posortuj ją według sprecyzowanego kryterium.

  19. Napisz klasę Book, która zawiera pola: title (typu String), author (typu String) i publishDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Book były sortowane według jednego niestandardowego kryterium: rosnąco według roku wydania. Stwórz tablicę 4 obiektów klasy Book i posortuj ją według sprecyzowanego kryterium.

  20. Napisz klasę Product, która zawiera pola: name (typu String), price (typu double) i productionDate (typu LocalDate). Zaimplementuj interfejs Comparable w taki sposób, aby obiekty klasy Product były sortowane według jednego niestandardowego kryterium: malejąco według roku produkcji. Stwórz listę tablicową 4 obiektów klasy Product i posortuj ją według sprecyzowanego kryterium.

  21. Zdefiniuj klasę Client, która będzie implementować generyczny interfejs Comparable. W klasie tej zadeklaruj prywatne pola lastName typu String oraz balance typu double. Implementując metodę compareTo interfejsu Comparable, porównuj klientów na podstawie ich salda, a w przypadku takiego samego salda - na podstawie nazwiska. Następnie zdefiniuj klasę Company dziedziczącą po klasie Client. Klasa Company ma dodatkowo posiadać prywatne pole numberOfEmployees typu int. Implementując metodę compareTo interfejsu Comparable w klasie Company, skorzystaj z metody compareTo zdefiniowanej w klasie Client oraz, w razie potrzeby, uwzględnij pole numberOfEmployees. Napisz program TestClient, w którym utwórz listę tablicową 5 klientów i firm o nazwie clientList posługując się klasą ArrayList. W składzie listy powinny wystąpić przynajmniej dwóch klientów o takim samym saldzie i różnym nazwisku oraz dwie firmy o takiej samej liczbie pracowników i różnym saldzie. Wyświetl zawartość listy clientList, posortuj ją za pomocą instancyjnej metody sort z klasy ArrayList i ponownie wyświetl zawartość tej listy.

  22. Zdefiniuj klasę Animal, która będzie implementować generyczny interfejs Comparable. W klasie tej zadeklaruj prywatne pola species typu String oraz age typu int. Implementując metodę compareTo interfejsu Comparable, porównuj zwierzęta na podstawie ich wieku, a w przypadku takiego samego wieku - na podstawie gatunku. Następnie zdefiniuj klasę Dog dziedziczącą po klasie Animal. Klasa Dog ma dodatkowo posiadać prywatne pole breed typu String. Implementując metodę compareTo interfejsu Comparable w klasie Dog, skorzystaj z metody compareTo zdefiniowanej w klasie Animal oraz, w razie potrzeby, uwzględnij pole breed. Napisz program TestAnimal, w którym utwórz listę tablicową 5 zwierząt i psów o nazwie animalList posługując się klasą ArrayList. W składzie listy powinny wystąpić przynajmniej po 3 obiekty różnych typów.