Найти Π² Π”Π·Π΅Π½Π΅
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;
}

Около ΠΌΠΈΠ½ΡƒΡ‚Ρ‹