#338 Изменяемый ключ в Map
Что будет выведено на экран?
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.TreeMap;
class Scratch {
final class Person {
String name;
Person(String name) {
this.name = name;
}
public String toString() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
public static void main(String args[]) {
checkMap(new HashMap<>());
checkMap(new LinkedHashMap<>());
checkMap(new TreeMap<>());
}
private static void checkMap(Map<Person,String> map) {
Person ivan = new Person("Иван");
Person peter = new Person("Пётр");
Person maria1 = new Person("Мария");
Person maria2 = new Person("Мария");
map.put(ivan,ivan.name);
map.put(peter,peter.name);
map.put(maria1,maria1.name);
map.put(maria2,maria2.name);
//iterate and println
for (Map.Entry<String,Person> entry:map.entrySet()) {
System.out.println(entry);
// Иван=Иван
}
//maria1.setName("Анна-Мария");
maria2.setName("Анна-Мария");
System.out.println(map.get(maria1));
System.out.println(map.get(maria2));
System.out.println("=====================================");
}
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору