Sobes.tech
Junior — Middle

Оё метавонед сохтори дохилии ва механизмҳои кории ҷадвали хешро дар Java шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Ҳеш таблица дар Java (масалан, HashMap) структураи додаҳоест, ки ҷуфтҳои калид-арзишро нигоҳ медорад ва дастрасии тезро тавассути калид таъмин мекунад.

Танзимоти дохилӣ:

  • Асос аз массиви коғазҳо (қуттиҳо) иборат аст.
  • Ҳар як қуттӣ ё null дорад, ё рӯйхати пайвастшуда (ё дарахт, агар бисёр элементҳо бошанд) аз элементҳо бо ҳамон код хеши модулӣ аз андозаи массив.

Механизми кор:

  1. Ҳангоми илова кардани элемент, код хеши калид ҳисоб карда мешавад ва индекс қуттӣ муайян мешавад.
  2. Агар қуттӣ холӣ бошад, элемент дар он ҷойгир мешавад.
  3. Агар қуттӣ ишғол шуда бошад, дар рӯйхати пайвастшуда (ё дарахт) ҷустуҷӯ мешавад, ки оё калид аллакай вуҷуд дорад:
    • Агар калид ёбад, арзиш нав карда мешавад.
    • Агар не, элемент ба рӯйхат илова мешавад.
  4. Вақте ки дархости пурра шудани муайяншуда ба он мерасад, массив (rehash) васеъ карда мешавад, то иҷроишро нигоҳ дорад.

Ин усул даромади миёнаи амалиётҳои ворид кардан, ҷустуҷӯ ва тоза карданро наздик ба O(1) нигоҳ медорад.

Маслиҳат барои истифода:

Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // дастрасии тез тавассути калид