Определите, что делает этот код.
Класс 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
Другие предметыУниверситетКоллекции и работа с ними в JavaJavaпрограммирование на Javaкласс Personкласс MainLinkedHashMapколлекции JavaEQUALShashCodeкод на Javaошибка компиляцииработа с картамиметоды в Javaпримеры кода Javaуниверситетобучение программированиюосновы Javaразработка на Java
Давайте разберем представленный код и посмотрим, что он делает, а также какие проблемы могут возникнуть при его выполнении.
Код состоит из двух классов: Person и Main.
Класс Person:
Класс Main:
Теперь давайте рассмотрим, что произойдет при выполнении этого кода:
Таким образом, правильный ответ:Код не компилируется, так как в классе Person не определены equals() и hashCode().
Чтобы исправить эту ситуацию, вам нужно переопределить методы equals() и hashCode() в классе Person, чтобы они корректно сравнивали объекты по значениям полей id и name.