Добрый день! Решение авторов использует готовый метод, я о нем не знала и попробовала реализовать проверку сама. Единственное, я совсем не учла поле int year, и думала, что валидатор не примет решение. Однако он принял. В связи с этим вопрос: мой код правда соответствует условиям задачи, здесь необязательно проверять year, или просто "прокатило" ?
Условие задачи:
Напиши свою реализацию hashCode, используя переменные model и year. Если эти поля у двух объектов одинаковые, то должен возвращаться одинаковый hashCode. Если правильно реализовать метод hashCode, вывод должен быть таким:
true
true
true
true
false
false
Requirements:
1. Нельзя изменять метод main.
2. В классе Car должен быть переопределен метод int hashCode().
3. Реализуй метод hashCode так, что бы результат работы программы соответствовал условию.
Мой код:
public class Car {
private String model;
private int year;
public Car(String model, int year) {
this.model = model;
this.year = year;
}
@Override
public int hashCode() {
return this.model.charAt(0);
}
//напишите тут ваш код
public static void main(String[] args) {
Car lamborghini = new Car("Lamborghini", 2020);
Car lamborghini1 = new Car("Lamborghini", 2020);
Car ferrari = new Car("Ferrari", 2020);
Car ferrari1 = new Car("Ferrari", 2020);
Car bugatti = new Car("Bugatti", 2020);
Car bugatti1 = new Car("Bugatti", 2020);
System.out.println(ferrari.hashCode() == ferrari.hashCode());
System.out.println(lamborghini.hashCode() == lamborghini1.hashCode());
System.out.println(ferrari.hashCode() == ferrari1.hashCode());
System.out.println(bugatti.hashCode() == bugatti1.hashCode());
System.out.println(bugatti.hashCode() == lamborghini.hashCode());
System.out.println(lamborghini.hashCode() == ferrari.hashCode());
}
}