Junior — Middle
HashMap түзүмүнүн ичинде элементке кандайча жетүү мүмкүн экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Javaда HashMap ишке ашырылат hash кодунун негизинде, ар бири бирдей hash кодуна ээ элементтерди камтыган байланышты тизмек же дарак (Java 8ден баштап) менен жабдылган бакет массивине негизделген.
Элементке кирүү төмөнкүдөй жүргүзүлөт:
- Ключтун
hashCode()методу аркылууhashкоду эсептелет. hashкоду көбүнчөhash & (capacity - 1)операциясы аркылуу бакет массивиндеги индекс болуп өзгөртүлөт.- Тандалган бакетте, издөөчү ачкычка барабар элемент издөө (
equals()аркылуу салыштыруу). - Эгер элемент табылса, ага байланышкан мааниси кайтарылат.
Мисал:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // `hash` эсептелет, бакет тандалат, элемент издөө
Ушул жол менен, элементке кирүү hash эсептөө, бакет тандоо жана бакеттеги ачкыч боюнча издөө менен ишке ашат.