Normal
ok, ich hab den relevanten code gefunden, und zwar hier:http://download.java.net/jdk6/6u23/promoted/b05/jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar[JAVA=297] public V get(Object key) { if (key == null) return getForNullKey(); int hash = hash(key.hashCode()); 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.equals(k))) return e.value; } return null; }[/code]es wird also tatsächlich in zeile 305 ein equals aufgerufen, aber nur wenn haswerte gleich sein und == vergleich fehlschlägt. Wieso hab ich soviel verschiedenene String Objekte mit gleichem text?
ok, ich hab den relevanten code gefunden, und zwar hier:
http://download.java.net/jdk6/6u23/promoted/b05/jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar
[JAVA=297]
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
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.equals(k)))
return e.value;
}
return null;
[/code]
es wird also tatsächlich in zeile 305 ein equals aufgerufen, aber nur wenn haswerte gleich sein und == vergleich fehlschlägt. Wieso hab ich soviel verschiedenene String Objekte mit gleichem text?