Hash.maxがそのままだと、キーの最大値を返す。 rubyのHashはmax()でキーの最大値を求めてくるので困ります. そこで値から最大値を求めるようにします. h.max { |a, b| a[1] <=> b[1] }でValueの最大値が返ってくる.便利ね. 最小値も同じ h.min { |a, b| a[1] <=> b[1] } デフォルト動作では h.max { |a, b| a <=> b }のように動いているっぽい Array/Enumerable ではデフォルトの比較で問題ない。しかしHashだと意図したとおり動かない.Hashではが a,b が配列になる。なのでHashでmaxが誤作動する h.max { |a, b| a <=> b }# Hashの場合 a=>[key,value], b=>[key,value]になっている。Ruby1.8だけの問題なのですか