Junior — Middle
Կարող եք բացատրել, թե ինչպես է կատարվում մուտքը HashMap կառուցվածքի ներսում գտնվող տարրին?
sobes.tech AI
Պատասխան AI-ից
Java-ում HashMap իրականացվում է բաքերի զանգվածի հիման վրա, որի յուրաքանչյուր բաք պարունակում է կապված ցանկ կամ ծառ (Java 8-ից սկսած) նույն հեշ-կոդով տարրերի:
Մուտք գործել տարրին հետևյալ կերպ է կատարվում.
- Կլուչի
hashCode()մեթոդով հաշվարկվում է նրա հեշ-կոդը: - Հեշ-կոդը փոխարկվում է բաքերի զանգվածի ինդեքսի (հաճախ
hash & (capacity - 1)գործողության միջոցով): - Ընտրված բաքում որոնվում է այն տարրը, որի բանալին հավասար է որոնվողին (
equals()միջոցով): - Եթե տարրն գտնվի, վերադարձվում է նրա հետ կապված արժեքը:
Օրինակ:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // հաշվարկվում է hash, ընտրվում բաք, որոնվում է տարր
Այսպիսով, մուտք գործել տարրին բաղկացած է hash-ի հաշվարկից, բաքի ընտրությունից և բանալիով որոնումից բաքի ներսում։