HashMap Java собеседование

Текст сюжета тут — it-channel.ru/2015/07/23/questions-hashmap-1/

HashMap Java собеседование
00:42 Устройство HashMap
02:10 Начальное количество корзин в HashMap
02:25 Коллизии в HashMap
04:01 Как происходит увеличение корзин в HashMap.loadFactor
04:50 Временная оценка операций HashMap.
06:40 ВРеменная оценка сложности алгоритмов
07:09 Ответ за задание из прошлого выпуска
07:44 Задание. Разминка для ума

Хотите повлиять на темы сюжетов? Вам сюда
vk.com/itspherechannel?w=wall-68704273_8%2Fall
Я в ВК vk.com/id26420520
Группа в ВК vk.com/itspherechannel
Опрос в группе vk.com/itspherechannel?w=wall-68704273_3%2Fall

Всем привет. Меня зовут Александр. Я по прежнему снимаю видео ролики посвященные прохождению собеседования на позицию java developera. Если хотите посмотреть первый ролик посвященный ArrayList-ам и LinkedList-ам, то вам сюда. Напомню что сейчас я разбираю коллекции в java. Сегодняшняя тема будет HashMap. Почему я выбрал эту тему? Да все по той же причине. Ее нужно знать обязательно если вы пришли на собеседование. Не знаете = не готовы!

Также если помните в прошлом видео ролике я задал вопрос для того чтобы вы дома размяли мозг. Ответ на него ищите в конце этого ролика.

Пожалуй начнем.

Расскажите про устройство HashMap?

Во-первых что такое HashMap?
HashMap — это ассоциативный массив. Если вкратце, то ассоциативный массив это структура данных которая хранит пары ключ-значения.

Чтобы было проще понять что это такое можно представлять HashMap как пронумерованные корзинки в которых хранятся какие-то данные. При добавлении нового объекта в HashMap мы также передаем помимо самого объекта еще и ключ по которому в дальнейшем его можно будет отыскать. Как по ключу можно определить положение искомого объекта? Для этого нам нужно знать hashCode ключа. Где же его взять? Да это очень просто если понимать что в качестве ключа может выступать любой объект в java. Все знают что класс Object реализует метод hashCode() это означает что он будет унаследован или переопределен самим “ключом”. Т.к. все в java наследуются от класса Object. Теперь понятно откуда у ключа берется hashCode!
После того как в hashMap, был передан ключ + сохраняемый объект специальная hash функция вычисляет то в какую корзину отнести наши данные.

Как вы понимаете никаких корзинок в HashMap-е нет. Вместо их есть массив. который хранит ссылки на связанные списки в которыхэ хранятся наши данные. Каждому элементу массива соответствует один список.

Какое начальное количество корзин в HashMap?

Данный вопрос мне ни разу не задавали я его нашел на хабре. Ответ 16. Но как и с ArrayList-ом в конструкторе можно задать другое количество.

Что такое коллизия? Способ решения коллизий.
Этот вопрос так же часто встречается
11:22
RSS
Нет комментариев. Ваш будет первым!