Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչպես է կատարվում մուտքը HashMap կառուցվածքի ներսում գտնվող տարրին?

sobes.tech AI

Պատասխան AI-ից

Java-ում HashMap իրականացվում է բաքերի զանգվածի հիման վրա, որի յուրաքանչյուր բաք պարունակում է կապված ցանկ կամ ծառ (Java 8-ից սկսած) նույն հեշ-կոդով տարրերի:

Մուտք գործել տարրին հետևյալ կերպ է կատարվում.

  1. Կլուչի hashCode() մեթոդով հաշվարկվում է նրա հեշ-կոդը:
  2. Հեշ-կոդը փոխարկվում է բաքերի զանգվածի ինդեքսի (հաճախ hash & (capacity - 1) գործողության միջոցով):
  3. Ընտրված բաքում որոնվում է այն տարրը, որի բանալին հավասար է որոնվողին (equals() միջոցով):
  4. Եթե տարրն գտնվի, վերադարձվում է նրա հետ կապված արժեքը:

Օրինակ:

HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // հաշվարկվում է hash, ընտրվում բաք, որոնվում է տարր

Այսպիսով, մուտք գործել տարրին բաղկացած է hash-ի հաշվարկից, բաքի ընտրությունից և բանալիով որոնումից բաքի ներսում։