Назад к вопросам
Junior — Middle
64
Какие изменения необходимо внести в структуру данных для поддержки составного ключа?
Компании, где спрашивали
Hftlabs
Ответ от нейросети
sobes.tech AI
Для поддержки составного ключа в структуре данных необходимо изменить представление ключа так, чтобы он мог содержать несколько полей. В Java это обычно достигается созданием отдельного класса, который объединяет все поля ключа, и переопределением методов equals() и hashCode() для корректного сравнения и хеширования.
Пример:
public class CompositeKey {
private String part1;
private int part2;
public CompositeKey(String part1, int part2) {
this.part1 = part1;
this.part2 = part2;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CompositeKey that = (CompositeKey) o;
return part2 == that.part2 && Objects.equals(part1, that.part1);
}
@Override
public int hashCode() {
return Objects.hash(part1, part2);
}
}
Такой ключ можно использовать, например, в HashMap<CompositeKey, Value> для корректного хранения и поиска по составному ключу.