# Ordered Maps
> [HTML Version](orderedmaps.htm)
An ordered map is a type of associative array that maps keys to values, maintaining an order to the keys. The concept is similar to an indexed file with a single variable length key and a single variable length data structure, either a simple string or a multi-member structure. ORDMAPM allows multiple key-value pairs with the same key, while ORDMAP does not.
**Subtopics**
- [Declaration / Creation](declarationcreationordered.htm.md)
- [Destruction](destruction.htm.md)
- [Special ORDMAP Functions](specialordmapfunctions.htm.md)
- [Element Assignment and Removal](elementassign-ordmap.htm.md)
- [Accessing Elements](accessingelementscoll.htm.md)
- [Element Arithmetic](element-arithmetic.htm.md)
- [Iterators](iterators.htm.md)
- [Ordered Multi-Map ORDMAPM](ordered_multi-map.htm.md)
**See Also**
• [Copy, Add, Subtract Collections](copyaddsubtractcollections.htm.md)
**History**
2022 May, A-Shell 6.5.1716: Increase key length from 511 bytes to unlimited.
2016 August, A-Shell 6.3.1520: Ordered Multi-Map (ORDMAPM) added.
2015 July, A-Shell 6.1.1414, compiler edit 742: Add ordmap(varstr;varx) and .ISNULL(var)
2013 June, A-Shell 6.1.1354, compiler edit 638: .[CLEAR](clear_asb.htm.md) function added
2012 June, A-Shell 6.1.1300: Ordered maps introduced; (varstr;varstr) only