JavaDoc: где добавить заметки / замечания к документации?

Это небезопасно или желательно. Значение, отображаемое клавишей 1, никогда не может быть восстановлено. При выполнении поиска большинство хэш-карт будут делать что-то вроде

Object get(Object key) {
    int hash = key.hashCode();
    //simplified, ignores hash collisions,
    Entry entry = getEntry(hash);
    if(entry != null && entry.getKey().equals(key)) {
        return entry.getValue();
    }
    return null;
}

. В этом примере key1.hashcode () теперь указывает на неправильное ведро хеш-таблицы, и вы не сможете получить value1 с ключом.

Если вы сделали что-то вроде

Key key1 = new Key(0, 0);
map.put(key1, value1);
key1.setA(5);
Key key2 = new Key(0, 0);
map.get(key2);

Это также не будет извлекать значение1, так как key1 и key2 уже не равны, поэтому эта проверка

    if(entry != null && entry.getKey().equals(key)) 

не удастся.

37
задан Jonathan Leffler 26 March 2015 в 20:00
поделиться