Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.lang.Cloneable;
- import java.lang.Comparable;
- import java.util.Calendar;
- import java.util.Comparator;
- public class Car implements Cloneable, Comparable {
- private String brand;
- private String model;
- private String color;
- private double hp;
- private String engine;
- private String gearbox;
- private int year;
- public Car(String brand, String model, String color, double hp, String engine, String gearbox, int year) {
- this.setBrand(brand);
- this.setModel(model);
- this.setColor(color);
- this.setHp(hp);
- this.setEngine(engine);
- this.setGearbox(gearbox);
- this.setYear(year);
- }
- public String getBrand() {
- return brand;
- }
- public void setBrand(String brand) {
- this.brand = brand;
- }
- public String getModel() {
- return model;
- }
- public void setModel(String model) {
- this.model = model;
- }
- public String getColor() {
- return color;
- }
- public void setColor(String color) {
- this.color = color;
- }
- public double getHp() {
- return hp;
- }
- public void setHp(double hp) {
- if (hp > 0) {
- this.hp = hp;
- } else {
- System.out.println("Invalid input for horse power");
- }
- }
- public String getEngine() {
- return engine;
- }
- public void setEngine(String engine) {
- this.engine = engine;
- }
- public String getGearbox() {
- return gearbox;
- }
- public void setGearbox(String gearbox) {
- this.gearbox = gearbox;
- }
- public int getYear() {
- return year;
- }
- public void setYear(int year) {
- int currYear = Calendar.getInstance().get(Calendar.YEAR);
- if (year > 0 && year <= currYear) {
- this.year = year;
- } else {
- System.out.println("Invalid input for year of manufacture");
- }
- }
- public static Car[] changeFirstLetterOfBrand(Car[] cars, char letter) {
- Car[] carBrandChanged = new Car[cars.length];
- for (int i = 0; i < cars.length; i++) {
- try {
- carBrandChanged[i] = (Car) cars[i].clone();
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- }
- carBrandChanged[i].setBrand(letter + cars[i].getBrand().substring(1));
- }
- return carBrandChanged;
- }
- public static Car[] sortCarsByBrandName(Car[] cars, String definingOrder) {
- Car[] sortedCarsByBrand = new Car[cars.length];
- for (int i = 0; i < cars.length; i++) {
- try {
- sortedCarsByBrand[i] = (Car) cars[i].clone();
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- }
- }
- if (definingOrder.equalsIgnoreCase("Ascending")) {
- Arrays.sort(sortedCarsByBrand, Comparator.comparing(carsSort -> carsSort.getBrand()));
- } else if (definingOrder.equalsIgnoreCase("Descending")) {
- Arrays.sort(sortedCarsByBrand, Comparator.comparing(carsSort -> carsSort.getBrand()));
- Car[] tempCarArray = new Car[sortedCarsByBrand.length];
- for (int i = 0; i < cars.length; i++) {
- try {
- tempCarArray[i] = (Car) sortedCarsByBrand[i].clone();
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- }
- }
- for (int i = 0; i < sortedCarsByBrand.length; i++) {
- sortedCarsByBrand[sortedCarsByBrand.length - i - 1] = tempCarArray[i];
- }
- }
- return sortedCarsByBrand;
- }
- public static Car[] deleteRepetitiveCars(Car[] carsInput) {
- ArrayList<Car> carsArrList = new ArrayList<>(Arrays.asList(carsInput));
- for (int i = 0; i < carsArrList.size(); i++) {
- for (int j = 0; j < carsArrList.size(); j++) {
- if (carEquals(carsArrList.get(i), carsArrList.get(j)) && i != j) {
- carsArrList.remove(j);
- }
- }
- }
- Car[] cars = carsArrList.toArray(new Car[carsArrList.size()]);
- return cars;
- }
- public static boolean carEquals(Car car1, Car car2) {
- if (
- car1.getBrand().equals(car2.getBrand()) &&
- car1.getModel().equals(car2.getModel()) &&
- car1.getColor().equals(car2.getColor()) &&
- car1.getHp() == (car2.getHp()) &&
- car1.getEngine().equals(car2.getEngine()) &&
- car1.getGearbox().equals(car2.getGearbox()) &&
- car1.getYear() == (car2.getYear())
- ) {
- return true;
- }
- return false;
- }
- @Override
- public String toString() {
- return "[Brand: " + this.brand +
- ", Model: " + this.model +
- ", Color: " + this.color +
- ", hp: " + hp +
- ", engine: " + engine +
- ", gearbox: " + engine +
- ", year: " + year +
- "]";
- }
- @Override
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
- @Override
- public int compareTo(Object o) {
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement