# 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