SHOW:
|
|
- or go back to the newest paste.
| 1 | package L12ObjectsAndClassesExercise.P06VehicleCatalogue; | |
| 2 | ||
| 3 | import javax.swing.plaf.synth.SynthOptionPaneUI; | |
| 4 | import java.util.*; | |
| 5 | import java.util.stream.Collectors; | |
| 6 | ||
| 7 | public class Main {
| |
| 8 | public static void main(String[] args) {
| |
| 9 | Scanner scan = new Scanner(System.in); | |
| 10 | String command = scan.nextLine(); | |
| 11 | ||
| 12 | List<Vehicle> vehicles = new ArrayList<>(); | |
| 13 | ||
| 14 | while (!"End".equals(command)) {
| |
| 15 | vehicles.add(new Vehicle(command)); | |
| 16 | command = scan.nextLine(); | |
| 17 | } | |
| 18 | ||
| 19 | command = scan.nextLine(); | |
| 20 | while (!"Close the Catalogue".equals(command)) {
| |
| 21 | String model = command; | |
| 22 | vehicles.stream().filter(x->x.getModel().equals(model)) | |
| 23 | .forEach(x-> System.out.println(x)); | |
| 24 | ||
| 25 | command = scan.nextLine(); | |
| 26 | } | |
| 27 | ||
| 28 | System.out.printf("Cars have average horsepower of: %.2f.\n"
| |
| 29 | , calculateAverageHorsePower(vehicles, "car")); | |
| 30 | System.out.printf("Trucks have average horsepower of: %.2f.\n"
| |
| 31 | , calculateAverageHorsePower(vehicles, "truck")); | |
| 32 | ||
| 33 | } | |
| 34 | ||
| 35 | private static double calculateAverageHorsePower(List<Vehicle> vehicles, String type) {
| |
| 36 | var vehiclesHorsePowers = vehicles.stream().filter(x -> x.getType().equals(type)).mapToInt(x -> x.getHorsePowers()).toArray(); | |
| 37 | int sum = Arrays.stream(vehiclesHorsePowers).sum(); | |
| 38 | return (vehiclesHorsePowers.length == 0) ? 0: sum / (double) vehiclesHorsePowers.length; | |
| 39 | } | |
| 40 | ||
| 41 | public static class Vehicle {
| |
| 42 | private String type; | |
| 43 | private String model; | |
| 44 | private String color; | |
| 45 | private int horsePowers; | |
| 46 | ||
| 47 | public Vehicle(String str) {
| |
| 48 | String[] input = str.split(" ");
| |
| 49 | this.type = input[0]; | |
| 50 | this.model = input[1]; | |
| 51 | this.color = input[2]; | |
| 52 | this.horsePowers = Integer.parseInt(input[3]); | |
| 53 | } | |
| 54 | ||
| 55 | public String getType() {
| |
| 56 | return type; | |
| 57 | } | |
| 58 | ||
| 59 | public int getHorsePowers() {
| |
| 60 | return horsePowers; | |
| 61 | } | |
| 62 | ||
| 63 | public String getModel() {
| |
| 64 | return model; | |
| 65 | } | |
| 66 | ||
| 67 | @Override | |
| 68 | public String toString(){
| |
| 69 | return String.format("Type: %s\n" +
| |
| 70 | "Model: %s\n" + | |
| 71 | "Color: %s\n" + | |
| 72 | "Horsepower: %d", this.type.toUpperCase(Locale.ROOT).charAt(0) + this.type.substring(1), this.model, this.color, this.horsePowers); | |
| 73 | } | |
| 74 | } | |
| 75 | } |