#288 Изменяемый объект в HashSet
Что будет выведено на экран? Объяснить каждую строку вывода:
class MyHashSet {
public static void main(String[] args) {
MyObject obj = new MyObject(10);
Set<MyObject> set = new HashSet<MyObject>();
set.add(obj);
obj.set(1000);
System.out.println(set.contains(obj));
System.out.println(set.contains(new MyObject(10)));
System.out.println(set.contains(new MyObject(1000)));
System.out.println(Object.equals(new MyObject(1000), obj));
}
}
class MyObject {
private int i;
private MyObject(int i) {
set(i);
}
private void set(int i) {
this.i = i;
}
public int hashCode() {
return i;
}
public boolean equals(MyObject o) {
return (o.i == this.i);
}
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору