![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
поясните мне про побитовый сдвиг, как вычисляется индекс понять не могу(((
поясните плиз что происходит в этой строчке: (h = key.hashCode()) ^ (h >>> 16) хочу понять основы ^ - вот это что означает? h ^= (h >>> 20) ^ (h >>> 12); - и поясните что тут происходит "^=" - это вроде отрицание, не равно чему? блин помогите разобраться
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Так а чего там объяснять? Биты сдвигает.
А ^ это xor.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
чёт не пойму получается
h ^= (h >>> 20) ^ (h >>> 12); - не равно чемуто или чемуто? а вот в этой строчке: static final int hash(Object key) { return: (h = key.hashCode()) ^ (h >>> 16) к примеру если подставить Integer key = 124256; (h = key.hashCode()) ^ (124256 >>> 16) - вот скажите что тут происходит как вы понимаете?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
static final int hash(Object key) {
int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } т.е. если key нулл тогда вернуть 0, если key не null тогда h равен хешкоду ключа или хешкоду глюча чёто тама 16 .. блин ну обясните я не понял
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,594
|
![]()
А книжку про операторы открыть слабо? Это сокращеная запись для h = h ^ ...
Цитата:
где вы видели второе присваивание h? или условное присваивание? не выдумывайте, а читайте как есть по порядку. скобки, как в школе ограничивают и разделяют выражения. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
так давайте ещё разик
Код:
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ) Модератор ___________________________ вот этот метод вычилсяет индекс в хеш мапе я правильно понял? ксор это у нас или т.е. мы тут проверяем если кей равену нулл то вернуть 0 если кей не равен нулл то h = key.hashCode() или h побитовый сдвиг на 16 т.е. если предположить что хешкод равен 2338892 то ответ получится 2338927 т.е. 2338927 - это же не индекс!? b tckb и если мы предположим что размер нашей хешмапы равен 20, то куда в какой индекс мы поместим наш ключ?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
и ели не ошибусь то начальный размер мапы равен 16 , вот куда мы будем вставлять ключ с таким индексом?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]()
может ссылочку дадите кде почитать развёрнутый ответ на данный вопрос а то я когда ищу то я нахожу ответы - как получить индекс получив остаток от деления на длинну вложенного массива если к примеру длинна вложенного массива круглое число и постоянно увеличивается в 10. где прочитать про другую версию?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
![]() Цитата:
везде про это только и пишут
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. ![]() |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Достать значения JSON из HashMap | yura91 | Java Мобильная разработка (Android) | 2 | 09.07.2016 19:25 |
Java и HashMap | OlgaLenc | Помощь студентам | 0 | 10.12.2014 13:44 |
Работа с HashMap<> (java) | 803 | Помощь студентам | 0 | 23.12.2013 19:29 |
Hashmap | Артем533 | Общие вопросы по Java, Java SE, Kotlin | 2 | 25.11.2012 00:17 |