Size: a a a

2021 January 26

Q

Qwant in learn.java
Эд
какая сумма полей?
Ну сумма полей * на 31
источник

DC

Denis Chikanov in learn.java
Qwant
Ну сумма полей * на 31
1 + 4 = 5
2 + 3 = 5

Шок-новости, слагаемые разные, сумма одна
источник

DC

Denis Chikanov in learn.java
Если очень хочется - домножь на 31
источник

Q

Qwant in learn.java
Denis Chikanov
1 + 4 = 5
2 + 3 = 5

Шок-новости, слагаемые разные, сумма одна
Ну тут понятно, хеш коды одинаковые, но объекты разные, вот тебе и колизия
источник

Q

Qwant in learn.java
Но на картинке выше вообще магия нарисованна)
источник

DC

Denis Chikanov in learn.java
Qwant
Но на картинке выше вообще магия нарисованна)
На картинке выше нарисовано ровно то же самое.
Хэшкод совпал, объекты нет.
источник

Q

Qwant in learn.java
А тоесть там вручную хешкод вбит?
источник

Q

Qwant in learn.java
Блин точно, не додумался)
источник

Э

Эд in learn.java
Qwant
А тоесть там вручную хешкод вбит?
реализация хешкода на картинке скрыта. Почему ты думаешь, что там вручную хешкод вбит?
источник

Q

Qwant in learn.java
Не откуда, просто я так подумал. Ну потому что при создании объектов всегда переопределяется hashcode, а тут каким то образом у 2 объектов, разный хешкод. Как такое может быть? кроме как вручную не вбить число в хешкод
источник

Q

Qwant in learn.java
Других способов я даже не могу представить себе
источник

Q

Qwant in learn.java
Если только объект пройдет N кол-во чисел типа Int и на 2 круге ему выдастся значение ячейки памяти. При стандарткой реализации hashcode метода
источник

Q

Qwant in learn.java
Но такое я в жизни даже не встречу ситуацию)
источник

DC

Denis Chikanov in learn.java
Qwant
Не откуда, просто я так подумал. Ну потому что при создании объектов всегда переопределяется hashcode, а тут каким то образом у 2 объектов, разный хешкод. Как такое может быть? кроме как вручную не вбить число в хешкод
"каким то образом у 2 объектов, разный хешкод" - почему "каким-то"? Совершенно естественным
Какое "вбить число в хэшкод", что ты вообще несёшь?
источник

Q

Qwant in learn.java
Denis Chikanov
"каким то образом у 2 объектов, разный хешкод" - почему "каким-то"? Совершенно естественным
Какое "вбить число в хэшкод", что ты вообще несёшь?
переопределить метод hashcode и вернуть число 100
источник

DC

Denis Chikanov in learn.java
Qwant
переопределить метод hashcode и вернуть число 100
Ещё раз - "каким то образом у 2 объектов, разный хешкод" - почему "каким-то"?
источник

Q

Qwant in learn.java
объект типа Класс А. его hashcode ссылается на ячейку памяти. значение 10001000

объект типа Класс Б. его hashcode ссылается на ячейку памяти. значение 10001001

Откуда у них одинаковый хешкод?
источник

N🌌

Nazarii 🌌 in learn.java
хешкод вообще нативной функцией считается, но, насколько я помню, ещё от jvm зависит
источник

РМ

Роман Маринич... in learn.java
его же перепоередить можно
источник

Q

Qwant in learn.java
Nazarii 🌌
хешкод вообще нативной функцией считается, но, насколько я помню, ещё от jvm зависит
Да, но в java в нативе есть неск вариант расчетов hashcode, штук 20 помойму и самый дефолтный помойму выдача значения из ячейки памяти его адресса
источник