#java
В HashMap есть метод
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ...}
В котором выполняется проверка на уникальность ключа.
Для определения уникальности используется сравнение чисел оператором &. Соответственно
вопрос:
Что именно выполняет оператор & между двумя числами?
12 & 0 //0
12 & 5 //4
12 & 12 //12
12 & 150 //4
15 & 67888795; //11
Ответы
Ответ 1
Это побитовый оператор AND 00101010 42 & 00001111 15 -------------- 00001010 10 Два числа представляются в двоичном виде. Затем оператором & сравниваются каждый бит двух чисел. Как работает оператор AND: если оба числа равны 1, то результат 1, если только один равен единице или оба нуля, то результат 0. Затем обратно из двоичного вида преобразуем в десятичный и получается обычное число.Ответ 2
Это операция побитового "И". Из вики: Побитовое И — это бинарная операция, действие которой эквивалентно применению логического И к каждой паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов. Другими словами, если оба соответствующих бита операндов равны 1, результирующий двоичный разряд равен 1; если же хотя бы один бит из пары равен 0, результирующий двоичный разряд равен 0.
Комментариев нет:
Отправить комментарий