A hash is a collection of pieces of data where you access any selected item via a key rather than by position (as with eg arrays and lists). Whether Ruby does this I don't know but in the olden days hash implied mapping a key into an address space using a randomizing algorithm which as far as possible kept items at different addresses. If the hash created a collision then the item would be moved to some predictable offset position. It's therefore a sort of indexing mechanism that doesn't require an index. Arguably it makes sense to use a hash whenever you are dealing with collections that are not accessed in a particular order. -- Posted via http://www.ruby-forum.com/.