diff --git a/Airline/src/Main.java b/Airline/src/Main.java deleted file mode 100644 index 578a30a..0000000 --- a/Airline/src/Main.java +++ /dev/null @@ -1,38 +0,0 @@ -import java.util.Arrays; -import java.util.Comparator; -import java.util.LinkedList; -import models.airline.iot.lviv.ua.Airplane; -import models.airline.iot.lviv.ua.CargoAircraft; -import models.airline.iot.lviv.ua.PassengerAircraft; - -public class Main { - - public static void main(String[] args) { - PassengerAircraft olivia = new PassengerAircraft(120,16000,2000,500,1000,6); - CargoAircraft antonov = new CargoAircraft(210,60000,1000,600,1200,9); - LinkedList list = new LinkedList(); - list.add(olivia); - list.add(antonov); - sortByMaxSpeed(list, false); - for(int i=0;i { + LinkedList list = new LinkedList(); - -public interface AirlineManager { - LinkedList list = new LinkedList(); List sortByMaxSpeed(List list, boolean sortOrder); + List sortByMaxDistance(List list, boolean sortOrder); + int countSeats(Object aircraft); + double countMaxLoadCapacity(Object aircraft); - - + } diff --git a/Airline/src/managers/airline/iot/lviv/ua/AirlineManagerImplementation.java b/Airline/src/managers/airline/iot/lviv/ua/AirlineManagerImplementation.java index d56ff8d..0369fce 100644 --- a/Airline/src/managers/airline/iot/lviv/ua/AirlineManagerImplementation.java +++ b/Airline/src/managers/airline/iot/lviv/ua/AirlineManagerImplementation.java @@ -1,40 +1,107 @@ package managers.airline.iot.lviv.ua; import java.util.Comparator; +import java.util.LinkedList; import java.util.List; import models.airline.iot.lviv.ua.Airplane; +import models.airline.iot.lviv.ua.CargoAircraft; +import models.airline.iot.lviv.ua.PassengerAircraft; -public class AirlineManagerImplementation implements AirlineManager{ +public class AirlineManagerImplementation implements AirlineManager { + public static void main(String[] args) { + PassengerAircraft Boeing747 = new PassengerAircraft("Boeing747", 120, 16000, 2000, 500, 1000, 6); + CargoAircraft Antonov = new CargoAircraft("Antonov", 510, 100000, 900, 900, 1200, 12); + PassengerAircraft Boeing777 = new PassengerAircraft("Boeing777", 550, 90000, 950, 892, 1300, 9); + LinkedList list = new LinkedList(); + list.add(Boeing747); + list.add(Boeing777); + list.add(Antonov); + + AirlineManagerImplementation manager = new AirlineManagerImplementation(); + + System.out.println("List elements (" + list.size() + "):"); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) instanceof Airplane) { + System.out.println(list.get(i).getName()); + } + } + + manager.sortByMaxSpeed(list, true); + + System.out.println("\nSort by maximum speed - ascending:"); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) instanceof Airplane) { + System.out.println(list.get(i).getName() +" = " + list.get(i).getMaxSpeed()); + } + } + + manager.sortByMaxSpeed(list, false); + + System.out.println("\nSort by maximum speed - descending:"); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) instanceof Airplane) { + System.out.println(list.get(i).getName() +" = " + list.get(i).getMaxSpeed()); + } + } + + manager.sortByMaxDistance(list, true); + + System.out.println("\nSort by maximum speed - ascending:"); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) instanceof Airplane) { + System.out.println(list.get(i).getName() +" = " + list.get(i).getMaxDistance()); + } + } + + manager.sortByMaxDistance(list, false); + + System.out.println("\nSort by maximum speed - descending:"); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) instanceof Airplane) { + System.out.println(list.get(i).getName() +" = " + list.get(i).getMaxDistance()); + } + } + + System.out.println("\nCount seats:"); + for (int i = 0; i < list.size(); i++) { + System.out.println(list.get(i).getName()+" = "+manager.countSeats(list.get(i))); + } + System.out.println("\nCount maximum load capacity:"); + for (int i = 0; i < list.size(); i++) { + System.out.println(list.get(i).getName()+" = "+manager.countMaxLoadCapacity(list.get(i))); + } + } + @Override public List sortByMaxSpeed(List list, boolean sortOrder) { if (sortOrder == true) { // ascending list.sort(Comparator.comparing(Airplane::getMaxSpeed)); - }else { + } else { // descending list.sort(Comparator.comparing(Airplane::getMaxSpeed).reversed()); } return list; } - + @Override public List sortByMaxDistance(List list, boolean sortOrder) { if (sortOrder == true) { // ascending list.sort(Comparator.comparing(Airplane::getMaxDistance)); - }else { + } else { // descending list.sort(Comparator.comparing(Airplane::getMaxDistance).reversed()); } return list; } - + @Override - public int countSeats(Object aircraft) { + public int countSeats(Object aircraft) { return ((Airplane) aircraft).getSeatsNumber(); } - + @Override public double countMaxLoadCapacity(Object aircraft) { return ((Airplane) aircraft).getMaxLoadCapacity(); diff --git a/Airline/src/models/airline/iot/lviv/ua/Airplane.java b/Airline/src/models/airline/iot/lviv/ua/Airplane.java index 8fdf888..ac5017d 100644 --- a/Airline/src/models/airline/iot/lviv/ua/Airplane.java +++ b/Airline/src/models/airline/iot/lviv/ua/Airplane.java @@ -1,19 +1,22 @@ package models.airline.iot.lviv.ua; -public abstract class Airplane{ - private int seatsNumber; - private double maxLoadCapacity; - private int maxDistance; - private int maxSpeed; - private int flightRange; - private int fuselageDiameter; +public abstract class Airplane { + private String name; + private int seatsNumber; + private double maxLoadCapacity; + private int maxDistance; + private int maxSpeed; + private int flightRange; + private int fuselageDiameter; private CabinNarrow cabinNarrow; - + public Airplane() { - - } - - public Airplane(int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, int flightRange, int fuselageDiameter) { + + } + + public Airplane(String name, int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, int flightRange, + int fuselageDiameter) { + this.name = name; this.seatsNumber = seatsNumber; this.maxLoadCapacity = maxLoadCapacity; this.maxDistance = maxDistance; @@ -76,6 +79,14 @@ public CabinNarrow getCabinNarrow() { public void setCabinNarrow(CabinNarrow cabinNarrow) { this.cabinNarrow = cabinNarrow; - } - + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } diff --git a/Airline/src/models/airline/iot/lviv/ua/CargoAircraft.java b/Airline/src/models/airline/iot/lviv/ua/CargoAircraft.java index de62f48..1f35647 100644 --- a/Airline/src/models/airline/iot/lviv/ua/CargoAircraft.java +++ b/Airline/src/models/airline/iot/lviv/ua/CargoAircraft.java @@ -3,13 +3,14 @@ public class CargoAircraft extends Airplane { private boolean loadingAndUnloadingSystem; private String cargoAircraftCategory; - + public CargoAircraft() { super(); } - - public CargoAircraft(int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, int flightRange, int fuselageDiameter) { - super(seatsNumber, maxLoadCapacity, maxDistance, maxSpeed, flightRange, fuselageDiameter); + + public CargoAircraft(String name, int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, + int flightRange, int fuselageDiameter) { + super(name, seatsNumber, maxLoadCapacity, maxDistance, maxSpeed, flightRange, fuselageDiameter); } public boolean isLoadingAndUnloadingSystem() { @@ -26,6 +27,6 @@ public String getCargoAircraftCategory() { public void setCargoAircraftCategory(String cargoAircraftCategory) { this.cargoAircraftCategory = cargoAircraftCategory; - } - + } + } diff --git a/Airline/src/models/airline/iot/lviv/ua/PassengerAircraft.java b/Airline/src/models/airline/iot/lviv/ua/PassengerAircraft.java index 455ea58..b0e6a9b 100644 --- a/Airline/src/models/airline/iot/lviv/ua/PassengerAircraft.java +++ b/Airline/src/models/airline/iot/lviv/ua/PassengerAircraft.java @@ -3,13 +3,14 @@ public class PassengerAircraft extends Airplane { private ComfortLevel comfortLevel; private boolean wifi; - + public PassengerAircraft() { - super(); + super(); } - - public PassengerAircraft(int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, int flightRange, int fuselageDiameter) { - super(seatsNumber, maxLoadCapacity, maxDistance, maxSpeed, flightRange, fuselageDiameter); + + public PassengerAircraft(String name, int seatsNumber, double maxLoadCapacity, int maxDistance, int maxSpeed, int flightRange, + int fuselageDiameter) { + super(name, seatsNumber, maxLoadCapacity, maxDistance, maxSpeed, flightRange, fuselageDiameter); } public ComfortLevel getComfortLevel() { @@ -26,6 +27,6 @@ public boolean isWifi() { public void setWifi(boolean wifi) { this.wifi = wifi; - } - + } + }