Что хранится в узлах бакета HashMap кроме ключа, значения и ссылки на следующий элемент
Что проверяют
Читали ли вы реализацию, а не только документацию. Вопрос узкий и проверяется в лоб: назвали кэшированный хеш, значит внутрь заглядывали, начали придумывать поля, значит нет.
Как отвечать
Прямой ответ: в узле хранится ещё поле hash, уже перемешанное значение хеш-кода ключа.
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
}Зачем оно нужно: при поиске сначала сравниваются значения типа int, и только при совпадении зовётся equals, который бывает дорогим. При расширении таблицы хеш не пересчитывается, метод hashCode ключа заново не вызывается вообще. Само перемешивание это подмешивание старших битов к младшим: индекс берётся как остаток по размеру таблицы, а размер степень двойки, и без перемешивания старшая половина разрядов просто не участвовала бы.
Дальше стоит показать, что узел не один. При длинной цепочке в бакете список превращается в красно-чёрное дерево, и узел становится древовидным: к тем же полям добавляются родитель, левый и правый потомки, ссылка назад по списку и флаг цвета. В LinkedHashMap узел несёт ещё две ссылки, before и after, которые держат порядок обхода. В ConcurrentHashMap значение и ссылка на следующий объявлены volatile.
Полезно сразу отсечь лишнее: номера бакета в узле нет, он вычисляется из хеша и текущего размера таблицы.
Где спотыкаются
Называют хранимым сырой результат hashCode. В таблице лежит перемешанное значение, и именно поэтому рассуждения вида «одинаковый хеш-код значит одинаковый бакет» на собеседовании разваливаются при первом уточнении.
Считают, что дерево появляется от одной только длины цепочки. Пока таблица мала, вместо перестройки происходит расширение, и порог по длине сам по себе ничего не запускает.
Забывают, что поле hash объявлено final и считается один раз, при вставке. Изменяемый ключ, у которого после добавления поменялось поле, участвующее в hashCode, остаётся в старом бакете: карта его не находит, размер его по-прежнему считает, и удалить его нечем.