Почему бы не создать SoftHashMap на SoftReferences
SoftHashMap на SoftReference теоретически возможен и реализован в сторонних библиотеках (например, org.apache.commons.collections4.map.ReferenceMap). Однако в стандартную библиотеку Java он не включен.
SoftReference удаляется только при нехватке памяти, а не при ближайшей сборке мусора как WeakReference. Это делает поведение SoftHashMap менее предсказуемым: время жизни записей зависит от давления на heap и реализации GC. В одних условиях записи будут жить долго, в других — удалятся быстро.
На практике для кэширования (основной сценарий SoftReference) лучше использовать специализированные библиотеки кэширования (Caffeine, Guava Cache), которые предоставляют контролируемые политики вытеснения (LRU, LFU, TTL) вместо непредсказуемого поведения SoftReference.
На собеседовании: упомяните, что SoftHashMap есть в Apache Commons. Объясните, почему для кэширования лучше использовать Caffeine/Guava — они дают контроль над политикой вытеснения.