Урок по Java 54: Maps

181 ratings | 5655 views


Урок по Java 54: Maps

Поддержать развитие канала -

Comments to the video: Урок по Java 54: Maps

Александр Гордюшенко 3 months ago
А будто ты смотришь описание классов?
Katerina Plain 1 month ago
Удерживаете Ctrl на клавиатуре, наводите на объект, описание которого желаете поглядеть,и нажимаете. Чтобы поглядеть доступные способы, необходимо надавить на вкладку Structure, которая размещена на панели слева (это панель, которая идет сверху книзу).
Алекс Мирный 5 months ago
мне будто то не зашло разъяснение.
Roman Kryvolapov 9 months ago
Интересно, будто переполнить хеш таблицу, не получив OutOfMemoryError?
Богдан Ткаченко 1 year ago
Для уточнения. К примеру у нас кушать Map<Driver, Car> DriverCars = new HashMap<>(); // hashcode() и equals() переопределены в классе Driver. DriverCars.put(new Driver( Anton ), new Car( Honda )); DriverCars.put(new Driver( Kiril ), new Car( Toyota )); Capacity у нас будет по умолчанию 16. Т.е. пункт в хэш таблице рассчитывается с помощью хэш кода ключа и размера хэш таблицы (16). Допустим у нас произошла коллизия т.е. хэш коды схожи однако при проверки equals() ключи различаются (коллизия может случиться поэтому, что хеш коды ограничены значением int, а число объектов ограниченно лишь нашей фантазией). Так вот оба наших водителя попадают в одну и туже ячейку хэш таблице ну-ка положим 5. И тогда облик ячейки 5 нашей хэш таблице будет владеть облик: hash ---> 1050 key ---> Anton value ---> Honda next----------------------| | | hash ---> 1050 <-| key ---> Kiril value ---> Toyota next ---> null Так будто у нас фактор наполнения равен 0.75 т.е. потом наполнения 3/4 * 16 = 12 ячеек хэш таблицы ее размер будет увеличен в 2 раза, а этак будто мы увеличиваем размер нашей хэш таблицы, то произойдет перераспределение частей в нашей хэш таблице и наши ключи с элементами new Driver( Anton ), new Driver( Kiril ) будут быть сейчас в различных ячейках. Если же у нас было: Map<Driver, Car> DriverCars = new HashMap<>(); // hashcode() и equals() переопределены в классе Driver. DriverCars.put(new Driver( Anton ), new Car( Honda )); DriverCars.put(new Driver( Anton ), new Car( Toyota )); То в итоге в нашей хэш таблице остался бы лишь DriverCars.put(new Driver( Anton ), new Car( Toyota )); этак будто он бы перезаписал бы запись DriverCars.put(new Driver( Anton ), new Car( Honda ));. Перезапись произошла бы поэтому что ключи схожи, а в Map невозможно, что бы находились пары (Key - Value) с схожими ключами. Так же если мы записываем пару у которой ключ является null, то такая чета записывается вечно в хэш таблицу под индексом 0. Только в TreeMap ключ не может быть null. А в HashTable ключ и смысл не могут быть null.
AsserTV 1 year ago
Замечательные уроки, смотрю с огромным наслаждением! Огромное вам благодарю! Хотелось бы отблагодарить копеечкой (студенческой), если прочитаете, оставьте кошелёк)