Мултимапе

С Википедије, слободне енциклопедије

У информатици, мултимапа (понекад мултихеш) представља генерализацију мапе или асоцијативног низа података, у коме више од једне вредности може бити везана и враћена за дати кључ. Мапа и мултимапа су специфични случајеви контејнера. Често се мултимапе имплементирају у облику мапа са листама и сетовима као вредностима саме мапе.[1]

Примери[уреди | уреди извор]

  • У систему за упис студената, где студент може бити пријављен на више предмета истовремено, може постојати веза за сваки упис на курс, где је кључ студентски индекс, а вредност је индекс курса. Ако је студент пријављен на три курса, постојаће три везе које садрже исти кључ.
  • Индекс књиге може било који број референци за дати индекс и тако може бити кодиран као мултимапа од индекса, до било ког броја реферисаних локација.
  • Кверистрингови могу имати вишеструке вредности везане за једно поље. То се уобичајено генерише када веб формулар омогућава да више чекбоксова буде означено у оквиру једног формулара.

Језичка подршка[уреди | уреди извор]

  • C++-ова Standard Template Library обезбеђује мултимап контејнер за сортирану мултимапу користећи самобалансирајуће бинарно стабло претраге[2] и SGI-ов STL додатак, обезбеђујући хеш мултимап контејнер, који имплементира мултимапу користећи хеш табеле.[3]
  • Apache Commons колекције обезбеђују подршку за мултимапе у Јави.[4] Такође, омогућују и имплементациону класу MultiValueMap-е, која прави мултимапу од објеката мапе и типова колекције.
  • Гугл Guava такође обезбеђује мултимап интерфејс и имплементацију.[5] API Scala програмског језика такође омогућава мултимапе и имплементације.[6]

Референце[уреди | уреди извор]

  1. ^ „std::multimap – cppreference.com”. fr.cppreference.com (на језику: француски). Приступљено 9. 4. 2020. 
  2. ^ „multimap<Key, Data, Compare, Alloc>”. Standard Template Library Programmer's Guide. Silicon Graphics International. 
  3. ^ „hash_multimap<Key, HashFcn, EqualKey, Alloc>”. Standard Template Library Programmer's Guide. Silicon Graphics International. 
  4. ^ „Interface MultiMap”. Commons Collections 3.2.1 API, Apache Commons. Архивирано из оригинала 16. новембар 2007. г. Приступљено 30. мај 2013. 
  5. ^ „Interface Multimap<K,V>”. Guava Library 2.0. Архивирано из оригинала 15. јануар 2013. г. Приступљено 30. мај 2013. 
  6. ^ „Scala.collection.mutable.MultiMap”. Scala stable API.