NEW
Also known as: Hash Map, Associative Array
A data structure that stores key–value pairs, enabling fast lookups, updates, and deletions by key.
DESCRIPTION
A dictionary, also known as a map or associative array, provides constant-time average access to values via unique keys, typically using hash tables or tree-based structures. It is a foundational data structure in most programming languages, supporting efficient insertion, deletion, and retrieval. Dictionaries are widely used for caching, indexing, configuration, and modeling sparse relationships. Implementations vary by language in ordering guarantees, mutability, and concurrency behavior. Common variants include ordered dictionaries, tree maps, and concurrent hash maps. Proper hashing and collision handling are critical for performance. Dictionaries underpin many higher-level abstractions, including JSON objects and key-value databases.
ALTERNATIVE DEFINITIONS
Wikipedia
In computer science, an associative array, map, symbol table, or dictionary is a collection of (key, value) pairs, where each possible key appears at most once in the collection.
Highlights the canonical concept and recognized synonyms across computing.
Python Documentation
A mapping object maps hashable values to arbitrary objects.
Emphasizes hashable keys and the mapping semantics in Python.
Microsoft .NET
Represents a collection of keys and values.
Defines the generic, strongly-typed .NET dictionary class.
Oracle Java SE Documentation
HashMap is a hash table based implementation of the Map interface.
Relates dictionary semantics to Java’s Map/HashMap interfaces and hashing.
RELATED TERMS
Hash Table Key-Value Store Hash Function Collision Resolution Linked List Treemap Ordered Dictionary MapReduce
COMPETING TERMS
RELATIONS
- Narrower: DAMA Dictionary Data Dictionary
KNOWLEDGE AREAS
Programming Languages Software Engineering Data Engineering
TARGET AUDIENCE
Software Developer Data Engineer Data Scientist Analytics Engineer Full Stack Developer Software Architect
EXTERNAL SOURCES
- Wikipedia - Associative array
- Python Documentation - Python dict type reference
- Go Language Specification - Go spec on map types
- Oracle Java SE Documentation - Java Map interface semantics
TOP QUESTIONS
What is a Dictionary in programming?
A Dictionary stores key–value pairs for efficient lookup by key. It’s widely used for indexing, caching, and configuration.
Category: Definition
Why is a Dictionary preferred over arrays for certain tasks?
Dictionaries provide average constant-time access by key, while arrays require scanning to find values unless indexed numerically.
Category: Relevancy
How is a Dictionary typically implemented?
Most implementations use hash tables with collision resolution; some use balanced trees like red–black trees for ordered keys.
Category: Requirements
What are common mistakes when using Dictionaries?
Using non-hashable or mutable keys, poor hashing, or ignoring thread-safety can degrade performance and cause subtle bugs.
Category: Mistakes
What is the risk of using a Dictionary with poor hash functions?
Inadequate hash functions increase collisions, leading to performance drops and potential denial-of-service in adversarial contexts.
Category: Risks
How do ordered Dictionaries differ from regular Dictionaries?
Ordered Dictionaries preserve insertion order or specified ordering, helpful for deterministic outputs and stable serialization.
Category: Opinion
What competing data structures to Dictionary exist?
Arrays and sets are alternatives, but they lack key-based lookups; tree maps offer order at different performance tradeoffs.
Category: Alternatives
How can Dictionaries be visualized?
Think of a filing cabinet: keys are labels, and values are folders, allowing fast retrieval by label.
Category: Example
Where should I start learning about Dictionaries?
Begin with language documentation (Python, Java, Go) and practice implementing hash tables to understand hashing and collisions.
Category: Learning