Ada also has hash maps and sets.

http://www.ada-auth.org/standards/22rm/html/RM-TOC.html - See section A.18 on Containers.

The feature of being able to use a discrete range as an array index is very helpful when you have a dense map (most keys will be used) or you also want to be able to iterate over a sequential block of memory (better performance than a dictionary will generally give you, since they don't usually play well with caches).

Thanks for the clarification. I can imagine that being a useful optimization on occasion.