Re[10]: hash()
От: newton1  
Дата: 30.01.14 18:28
Оценка: -1
CS>А что такое размер объекта?

CS>Скажем есть два массива: [1,2,3] и [4,5,6]. Какие у них будут hash values в твоем случае?


Одинаковыми. А что здесь необычного? Да, достаточно простой хеш
Re[6]: hash()
От: GarryIV  
Дата: 30.01.14 19:59
Оценка:
Здравствуйте, c-smile, Вы писали:

GIV>>Принцип наименьшего удивления советует сделать так, как в Java и .NET


CS>То как сделано в Java например вызывает как раз наибольшее количество вопросов.

CS>Там вообще назначение этого hashValue() не ясно.

Черным по белому написано же

This method is supported for the benefit of hash tables such as those provided by HashMap.



CS>Вот правила Java:


CS>
CS>"123".hashValue() == "123".hashValue();
верно
CS>"123".hashValue() != "345".hashValue();
неверно, может быть и равно

CS>{a:"123"}.hashValue() != {a:"123"}.hashValue();
CS>{a:"123"}.hashValue() != {a:"345"}.hashValue();
Если считать, что этот hashValue == java.lang.Object.hashCode то да, верно
CS>


CS>Я теряюсь в понимании того что такое hash в их понимании. Это identity или content метрика или что-то другое вообще?


Ни то не другое. Точнее для каких-то классов 100% content (string), для каких-то 100% identity (Object) для каких-то нечто промежуточное.
WBR, Igor Evgrafov
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.