Переопределение метода добавления для списка, чтобы проверить, равен ли атрибут другому атрибуту экземпляров - PullRequest
0 голосов
/ 08 ноября 2019

!!! Только для практики !!!

Автомобиль - это неизменный объект, имеющий атрибуты String owner, String registration....

Так вот мой код: MyGarage реализует Garage, который содержит метод add.

MyGarage также имеет ArrayList, который принимает аргумент типа Car

. Предполагается, что для проверки того, все ли автомобили готовы в списке, укажите регистрацию

Car

final class Car{
    private String owner;
    private final String registration;
    private final String make;
    private final int kilometres;
    private final double price;

    public Car(String ownerString, String registrationString, String makeString, int kilometresInt, double priceDouble){
        owner = ownerString;
        registration = registrationString;
        make = makeString;
        kilometres = kilometresInt;
        price = priceDouble;
    }

    public String getOwner(){
        return owner;
    }

    public String getRegistration(){
        return registration;
    }

    public String getMake(){
        return make;
    }

    public int getkilometres(){
        return kilometres;
    }

    public double getprice(){
        return price;
    }



}

MyGarage

Метод add сравнивает, если ti не равно null, сохраните его, как я могу установить это значение на if() регистрация уже в списке, больше не добавлятьadd

   import java.util.ArrayList;



public class MyGarage implements Garage {

    private ArrayList<Car> myGarage;

    public MyGarage() {
        myGarage = new ArrayList<Car>();
    }

    @Override
    public boolean add(Car c) {
        for(Car car : myGarage) {

            //This is where I make the ceck I am not sure how and I know this is only checking to make sure 
            //the value does not equal null not if it is the same registration
            if(getCar(car.getRegistration())!=null) {           



                System.out.println("Car has the same Registration as another illegal");
                return false;       
            }   
        }
        myGarage.add(new Car(c.getOwner(),c.getRegistration(),c.getMake(),c.getkilometres(), c.getprice()));
        return true;
    }
}

Тестовый класс

public class Test {

    public static void main(String[] args) {
        MyGarage garage = new MyGarage();

        garage.add(new Car("Tom", "222","Honda",  1, 1000.99));
        garage.add(new Car("Sam", "333","Honda",  2, 2000.99));
        garage.add(new Car("Bob", "444","Ford",  3, 3000.99));
        garage.add(new Car("Bob", "444","Ford",  3, 3000.99));

        garage.display();   
    }

}

}

Это отобразит все 4 объекта Car в списке, 4-й экземпляр не должен быть разрешен в списке

...