пятница, 16 ноября 2012 г.

Работа кипит

Всю неделю вкалывал как вол и написал собственную реализацию HashMap. Сейчас она в стадии review, но со временем выйдет.

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

В результате получился некий базовый класс, которому можно задать тип references не только для ключей, но и для значений. Можно использовать weak, soft или даже strong references. Кроме того, можно переопределить методы для сравнения ключей и значений, используя нужный способ.

Может быть, позже опубликую статейку про все возможности.

2 комментария:

  1. В чём идея сравнения ключей не через equals()?

    ОтветитьУдалить
    Ответы
    1. Иногда метод equals можно переопределить и вытащить все остальные ключи, а по ним что-нить ещё...

      Удалить