Определите, что делает этот код.
Класс Person :
publicclassPerson{privateint id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
@Override
public String tostring) {
return id + "" + name;
Класс Main :
importjava.util.LinkedHashMap:importjava.util.Map;publicclassMain{publicstaticvoidmain(String[) args) {
Map<Person, Integer> people = new LinkedHashMap‹>();
people.put(new Person(17, "John"), 4);
people.put(new Person(17, "John"), 28);
System.out.printin(people.keySet()):
}
• Код не компилируется, так как в классе Person не определены equals() И hashCode()]
• 17 John, 17 John
• Код бросит ошибку при запуске, так как в классе Person не определены equals() И hashCode()|
• 17 John
Другие предметы Университет Коллекции и работа с ними в Java Java программирование на Java класс Person класс Main LinkedHashMap коллекции Java EQUALS hashCode код на Java ошибка компиляции работа с картами методы в Java примеры кода Java университет обучение программированию основы Java разработка на Java Новый
Давайте разберем представленный код и посмотрим, что он делает, а также какие проблемы могут возникнуть при его выполнении.
Код состоит из двух классов: Person и Main.
Класс Person:
Класс Main:
Теперь давайте рассмотрим, что произойдет при выполнении этого кода:
Таким образом, правильный ответ: Код не компилируется, так как в классе Person не определены equals() и hashCode().
Чтобы исправить эту ситуацию, вам нужно переопределить методы equals() и hashCode() в классе Person, чтобы они корректно сравнивали объекты по значениям полей id и name.