Pull to refresh
122
0
Send message
habrahabrovec Не забывайте, что статье почти 8 лет. В Java 6 реализация выглядела именно так как описано в статье, посмотреть можно тут
Не значит. Для некоторых ключей может получиться такой хэш, что при вызове indexFor(hash, tableLength) индекс будет равен 0. Так же важно не забывать, что при изменении tableLength распределение элементов в таблице будет другим.
Не знаю насколько техническим будет продолжение, но пока что статья больше подходит для гиктаймс. В любом случае интересно будет увидеть следующую часть.
В Конституции РФ, по его словам, записано право на тайну частной жизни, на тайну телефонных разговоров, переписки, прямой запрет без решения суда на сбор, хранение, использование и распространение информации о частной жизни, такие же принципы записаны и в законодательстве других стран, но «на практике сталкиваемся с вопиющим нарушением прав человека

Вспоминают о конституции только когда им нужно пропихнуть очередной идиотский закон или прикрыть свою задницу. Как же надоело наблюдать за этой клоунадой…
У элементов с ключами 4 и 38 хэш-коды равны 4 и 36 соответственно. Но, вычисление индекса по этим хэш-кодам дало одинаковый результат — 4. При другом размере table этой коллизии может не быть, но могут быть другие.

Могу посоветовать предыдущую статью про HashMap, в ней более подробно описаны функции получения хэш-кода и индексов.
Спасибо, приму к сведению ваши пункты
Спасибо, постараюсь учесть ваши замечания
Поясните пожалуйста, что конкретно вас не устроило в картинках?
Пробовал использовать различные закладочные сервисы, все чем-то не устраивали. Недавно написал свой небольшой сервис с блэкджеком, теперь в нем есть всё что мне нужно.
Сделал небольшой тест — добавляются элементы с ключами от «0» до «1000000», в результате:
1) Самая длинная цепочка — 6 элементов, средняя длинна — 2 элемента
2) 2 раза было зафиксировано время > 0 при обходе цепочек, по ~16мс каждый

Если пренебречь этими двумя проходами, то как раз получится O(1).

Я пробовал добавить большее количество элементов, но памяти не хватило. Однако предварительные данные показали, по п. 2) срабатываний было больше, хотя время на каждый проход так же не превышало ~16мс.
На мой вкус, первый пример из статьи самый удобный и компактный. Внутри хэш-мапа, все его итераторы устроены практически одинаково.

Другой вопрос, если вам нужны только ключи или только значения, то правильнее будет юзать keySet() и values() а то получится что разработчики класса зря старались :)
Спасибо и вам!
Думаю да, мапы еще будут, правда в каком виде еще не думал.
Вопрос к читателям: на ваш взгляд/опыт, оправдано ли отсутствие методов для уменьшения размера HashMap-а, и случались ли у вас из-за этого проблемы?
Раз уж убрали кнопку «Все» в пользу ленты (которая судя по всему не была востребованной), может тогда разработчикам стоило подписать всех на всё, по умолчанию?
Если вы про
на добавление и удаление из середины списка, используя ListIterator.add() и ListIterator.remove(), потребуется O(1)
то здесь всё верно написано. Загляните в исходник, в этих методах нет перебора элементов.
Я указал исходник по которому делал описание
За ссылку спасибо, добавил в топик
Чуть выше Throwable написал — ArrayList оперирует объектами.
Добавлять вы можете любой тип, другой вопрос как он их хранит.
Спасибо, добавил ваше замечание в топик
Хороших материалов по расходам памяти пока не встречал. Если что-то накопаю, обязательно укажу в след. статьях.
Спасибо, постараюсь учесть в будущих статьях
1

Information

Rating
Does not participate
Registered
Activity