kristina7

НП - Автомобили

Jan 13th, 2019
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.29 KB | None | 0 0
  1. /*
  2. Да се напише класа за автомобил Car во која се чува:
  3.  
  4. производител
  5. модел
  6. цена
  7. моќност.
  8. Да се имплементира конструктор со следните аргументи Car(String manufacturer, String model, int price, float power).
  9.  
  10. Потоа да се напише класа CarCollection во која се чува колекција од автомобили. Во оваа класа треба да се имплментираат следните методи:
  11.  
  12. public void addCar(Car car) - додавање автомобил во колекцијата
  13. public void sortByPrice(boolean ascending) - подредување на колекцијата по цената на автомобилот (во растечки редослед ако аргументот ascending е true, во спротивно, во опаѓачки редослед). Ако цената на автомобилите е иста, сортирањето да се направи според нивната моќноста.
  14. public List<Car> filterByManufacturer(String manufacturer) - враќа листа со автомобили од одреден производител (споредбата е според името на производителот без да се води сметка за големи и мали букви во името). Автомобилите во оваа листата треба да бидат подредени според моделот во растечки редослед.
  15. public List<Car> getList() - ја враќа листата со автомобили од колекцијата.
  16. */
  17.  
  18. import java.util.ArrayList;
  19. import java.util.Collections;
  20. import java.util.Comparator;
  21. import java.util.List;
  22. import java.util.Scanner;
  23. import java.util.Set;
  24. import java.util.TreeSet;
  25. import java.util.stream.Collectors;
  26.  
  27. class Car implements Comparable<Car> {
  28.     String manufacturer;
  29.     String model;
  30.     int price;
  31.     float power;
  32.  
  33.     public Car(String manufacturer, String model, int price, float power) {
  34.         this.manufacturer = manufacturer;
  35.         this.model = model;
  36.         this.price = price;
  37.         this.power = power;
  38.     }
  39.  
  40.     public String getModel() {
  41.         return model;
  42.     }
  43.  
  44.     public int getPrice() {
  45.         return price;
  46.     }
  47.  
  48.     public float getPower() {
  49.         return power;
  50.     }
  51.  
  52.     @Override
  53.     public String toString() {
  54.         return String.format("%s %s (%.0fKW) %d", manufacturer, model, power, price);
  55.     }
  56.  
  57.     @Override
  58.     public int compareTo(Car c) {
  59.         return Comparator.comparing(Car::getPrice).thenComparing(Car::getPower).compare(this, c);
  60.     }
  61. }
  62.  
  63. class CarCollection {
  64.     List<Car> cars;
  65.  
  66.     public CarCollection() {
  67.         cars = new ArrayList<>();
  68.     }
  69.  
  70.     public void addCar(Car car) {
  71.         cars.add(car);
  72.     }
  73.  
  74.     public void sortByPrice(boolean ascending) {
  75.         Collections.sort(cars);
  76.         if (!ascending)
  77.             Collections.reverse(cars);
  78.     }
  79.  
  80.     public List<Car> filterByManufacturer(String manufacturer) {
  81.         return cars.stream().filter(car -> car.manufacturer.equalsIgnoreCase(manufacturer))
  82.                 .sorted(Comparator.comparing(Car::getModel)).collect(Collectors.toList());
  83.     }
  84.  
  85.     public List<Car> getList() {
  86.         return cars;
  87.     }
  88.  
  89. }
  90.  
  91. public class CarTest {
  92.     public static void main(String[] args) {
  93.         CarCollection carCollection = new CarCollection();
  94.         String manufacturer = fillCollection(carCollection);
  95.         carCollection.sortByPrice(true);
  96.         System.out.println("=== Sorted By Price ASC ===");
  97.         print(carCollection.getList());
  98.         carCollection.sortByPrice(false);
  99.         System.out.println("=== Sorted By Price DESC ===");
  100.         print(carCollection.getList());
  101.         System.out.printf("=== Filtered By Manufacturer: %s ===\n", manufacturer);
  102.         List<Car> result = carCollection.filterByManufacturer(manufacturer);
  103.         print(result);
  104.     }
  105.  
  106.     static void print(List<Car> cars) {
  107.         for (Car c : cars) {
  108.             System.out.println(c);
  109.         }
  110.     }
  111.  
  112.     static String fillCollection(CarCollection cc) {
  113.         Scanner scanner = new Scanner(System.in);
  114.         while (scanner.hasNext()) {
  115.             String line = scanner.nextLine();
  116.             String[] parts = line.split(" ");
  117.             if (parts.length < 4)
  118.                 return parts[0];
  119.             Car car = new Car(parts[0], parts[1], Integer.parseInt(parts[2]), Float.parseFloat(parts[3]));
  120.             cc.addCar(car);
  121.         }
  122.         scanner.close();
  123.         return "";
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment