Warum sollte ein Objekt für getEntry in HashMap definiert werden?

Ich bin neu in Generika und ich bin nicht sicher, ob die Antwort auf meine Frage istopinion based oder hat einen echten Grund. Was musste im folgenden Code bei einem Schlüssel eines Eintrags zu einem Objekt beachtet werden?

Object k;
if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))

Es scheint leicht zu ersetzen durch

if (e.hash == hash && (e.key == key || (key != null && key.equals(e.key))))

Weitere Hinweise:

 final Entry<K,V> getEntry(Object key) {
        int hash = (key == null) ? 0 : hash(key);
        for (Entry<K,V> e = table[indexFor(hash, table.length)];
             e != null;
             e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))
                return e;
        }
        return null;
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage