GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — Multimap - Wikipedia

This article is about the data type. For the mathematical concept, see Multivalued function. For the mapping website, see Multimap.com.
icon
This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Multimap" – news · newspapers · books · scholar · JSTOR
(February 2022) (Learn how and when to remove this message)

In computer science, a multimap (sometimes also multihash, multidict or multidictionary) is a generalization of a map or associative array abstract data type in which more than one value may be associated with and returned for a given key. Both map and multimap are particular cases of containers. Often the multimap is implemented as a map with lists or sets as the map values.

Examples

  • In a student enrollment system, where students may be enrolled in multiple classes simultaneously, there might be an association for each enrollment of a student in a course, where the key is the student ID and the value is the course ID. If a student is enrolled in three courses, there will be three associations containing the same key.
  • The index of a book may report any number of references for a given index term, and thus may be coded as a multimap from index terms to any number of reference locations or pages.
  • Querystrings may have multiple values associated with a single field. This is commonly generated when a web form allows multiple check boxes or selections to be chosen in response to a single form element.

Language support

C++

The C++ standard library provides the std::multimap container for the sorted multimap using a self-balancing binary search tree.[1].

As of C++11, the Standard Template Library provides the std::unordered_multimap for the unordered multimap implemented with a hash table[2], itself based on SGI's STL hash_multimap.[3]

Dart

Quiver provides a Multimap for Dart.[4]

Java

Apache Commons Collections provides a org.apache.commons.collections4.MultiMap interface for Java.[5] It also provides a org.apache.commons.collections4.map.MultiValueMap implementing class that makes a org.apache.commons.collections4.MultiMap out of a java.util.Map object and a type of java.util.Collection.[6]

Google Guava provides a com.google.common.collect.Multimap interface and implementations of it.[7]

Kotlin

Kotlin does not have explicit support for multimaps,[8] but can implement them using kotlin.collections.Maps with containers[9] for the value type. E.g. a Map<User, List<Book>> can associate each User with a list of Books.

Python

Python provides a collections.defaultdict class that can be used to create a multimap. The user can instantiate the class as collections.defaultdict(list).

OCaml

OCaml's standard library module Hashtbl implements a hash table where it is possible to store multiple values for a key.

Scala

The Scala programming language's API also provides scala.collection.mutable.MultiMap and implementations.[10]

See also

  • Multiset for the case where same item can appear several times

References

  1. ↑ "multimap<Key, Data, Compare, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  2. ↑ "Working Draft, Standard for Programming Language C++" (PDF). p. 7807.
  3. ↑ "hash_multimap<Key, HashFcn, EqualKey, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  4. ↑ "Multimap". Quiver API docs.
  5. ↑ "Interface MultiMap". Commons Collections 3.2.2 API, Apache Commons.
  6. ↑ "Class MultiValueMap". Commons Collections 3.2.2 API, Apache Commons.
  7. ↑ "Interface Multimap<K,V>". Guava Library 2.0. Archived from the original on 2013-01-15. Retrieved 2013-01-01.
  8. ↑ "Implement a MultiMap in Kotlin | Baeldung on Kotlin". 5 December 2023.
  9. ↑ "Accessing data using Room DAOs".
  10. ↑ "Scala.collection.mutable.MultiMap". Scala stable API.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Multimap&oldid=1381770498"
Categories:
  • Associative arrays
  • Abstract data types
Hidden categories:
  • Articles with short description
  • Short description is different from Wikidata
  • Articles needing additional references from February 2022
  • All articles needing additional references
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.