Получил много бесценного опыта, так как о создании хэш-таблиц у меня были только теоретические знания. Изначально проблема была в том, что в JDK существует WeakHashMap и IdentityHashMap, но мне нужно было, чтобы ключи были на weak references, и чтобы сравнивались они по
==
, а не через equals()
.В результате получился некий базовый класс, которому можно задать тип references не только для ключей, но и для значений. Можно использовать weak, soft или даже strong references. Кроме того, можно переопределить методы для сравнения ключей и значений, используя нужный способ.
Может быть, позже опубликую статейку про все возможности.
В чём идея сравнения ключей не через equals()?
ОтветитьУдалитьИногда метод equals можно переопределить и вытащить все остальные ключи, а по ним что-нить ещё...
Удалить