Встречается на собеседованиях • сегодня
Какие классы использовать в качестве ключа в HashMap, чтобы объекты не терялись
Лучше использовать неизменяемые (immutable) классы в качестве ключей в HashMap. Это гарантирует, что хэш-код ключа не изменится после добавления в мапу.
Основные требования для ключа:
- Правильно переопределенные
equals()иhashCode() - Неизменяемость (или как минимум неизменяемость полей, участвующих в equals/hashCode)
Хорошие кандидаты:
- String
- Integer, Long и другие обертки примитивов
- Собственные immutable классы
Пример плохого ключа (мутабельный):
java
class BadKey {
int id;
// equals/hashCode используют поле id
public void setId(int id) { this.id = id; }
}
BadKey key = new BadKey();
key.setId(1);
map.put(key, "value");
key.setId(2); // ключ "потеряется" в мапе
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы