Junior — Middle
102
¿Qué cambios deben realizarse en la estructura de datos para soportar una clave compuesta?
Empresas donde se preguntó
Hftlabs
Respuesta de la IA
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> для корректного хранения и поиска по составному ключу.