82 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°
π₯ ΠΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡΠ°Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠ΅ΠΉ Π² hashmap?
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Π²ΡΡΠ°Π²Π»Π΅ΠΌ 8 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² hashmap, Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ hashcode, Π½ΠΎ ΡΠ°Π·Π½ΡΠΉ equals.
ΠΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΎΠ΄Π½Ρ ΡΡΠ΅ΠΉΠΊΡ, Π±ΡΠ΄ΡΡ Π²ΡΡΡΡΠΎΠ΅Π½Ρ Π² Π΄Π΅ΡΠ΅Π²ΠΎ.
ΠΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊ Π² java ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΡΡΠ° ΠΊΡΠ΄Π° Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΡΠ°Π²ΠΈΡΡ Π² Π΄Π΅ΡΠ΅Π²ΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ? ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠ»ΡΡΠΈ Π½Π΅ comparable
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² HashMap ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ tieBreakOrder, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΠΈΡ
identity hash code:
static int tieBreakOrder(Object a, Object b) {
int d;
if (a == null || b == null ||
(d = a.getClass().getName().
compareTo(b.getClass().getName())) == 0)
d = (System.identityHashCode(a) <= System.identityHashCode(b) ?
-1 : 1);
return d;
}
ΠΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ½ΡΡΡ
1Β ΠΌΠ°ΡΡΠ°Β 2023