Molte volte un hash può essere più conveniente di un array. L'uso di una chiave composta (o hash di hash) può essere utilizzato per simulare array multidimensionali. Questo è di uso significativo quando l'array sarebbe altrimenti un array sparse o un [jagged array]. Hash può essere più facile per questi casi e possono essere sorprendentemente comuni.
Tuttavia, gli hash non sono dati ordinati. Mentre è molto facile inserire i dati in un hash, diventa più complicato rimetterlo in ordine. Molto più complicato del semplice utilizzo della matrice appropriata in primo luogo.
Un altro fattore da considerare, gli hash sono davvero facili. Ci sono un certo numero di trasformazioni con array di ruby che possono confondere: ci sono quasi il doppio dei metodi in Array come in Hash. Quindi, se stai semplicemente lanciando alcuni dati a cui vuoi accedere (e non ti interessa l'ordine), specialmente se si tratta di dati non correlati tra loro, metterli in un hash è molto più semplice da concettualizzare .
Molte volte, gli hash conservano un oggetto dati anonimo veloce con alcuni campi invece di creare una classe completamente nuova (probabilmente è una scelta migliore rispetto alla metaprogrammazione di un oggetto anonimo con i campi da passare). È più facile ricordare che 'userid' è nella chiave 'userid' piuttosto che nell'elemento 0 dell'array.
L'uso di un hash è solo idiomatico quando i dati non hanno già un ordine sottostante, enumerabile.