Метод contains ArrayList

В меня такие задачи.
В двух ArrayLists, каждый из которых содержит по 3 объекты класса Car, в свою очередь, содержит поля String model, String owner, int price, int produceYear, определить факт наличия в коллекциях автомобилей владельца "Serg". Задача определить двумя способами - с помощью метода contains класса ArrayList и с помощью других произвольных методов.

Почему везде выдает true?

        Car car1 = new Car("BMW X5","Oleg",9999,2018);
        Car car2 = new Car("BMW X4","Serg",12313,2017);
        Car car3 = new Car("BMW X3","Arsen",31231,2015);
        Car car4 = new Car("VOLGA ","Petro",3123132,2009);
        Car car5 = new Car("Mercedes-Benz","Serg",999999,2014);
        Car car6 = new Car("BMW X3","Vitalii",123131,2015);

        List<Car> cars1 = new ArrayList<>();
        cars1.add(car1);
        cars1.add(car2);
        cars1.add(car3);

        List<Car> cars2 = new ArrayList<>();
        cars2.add(car4);
        cars2.add(car5);
        cars2.add(car6);
        for (Car car : cars2) {
            System.out.println(cars2.contains(car));
        }
    }

class Car{
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Car)) return false;
        Car car = (Car) o;
        return owner.equals(car.owner);
    }
}

Ответы (1 шт):

Автор решения: Igor

Вы перебираете элементы списка cars2 и проверяете, содержится ли каждый из них в списке cars2. Ответ, наверное, будет "да" для каждого элемента списка.


    for (Car car : cars2) {
      if ("Serg".equals(car.owner)) {
        System.out.println("cars2 contains a car owned by Serg");
        break;
      }
    }
→ Ссылка