Rubyで構造化データ

配列の配列を作る。

aoa = Array.new
aoa << [ 100, 3 ]
aoa << [ 200, 2 ]
aoa << [ 300, 1 ]

ハッシュの配列を作る。

aoh = Array.new
aoh << [ :id=>100, :weight=>3 ]
aoh << [ :id=>200, :weight=>2 ]
aoh << [ :id=>300, :weight=>1 ]

Arrayをソートするにはsortメソッドが使える。

# 第1カラムでソート
aoa_sorted = aoa.sort { |a,b| a[1]<=>b[1] }

Array of Hashをソートする場合は、sort_byメソッドを使うと簡単。

# weightフィールドでソート
aoh_sorted = aoh.sort_by { |e| e[:weight] }

Array of Arrayだと、フットプリントは要素あたり40バイトくらいで、Array of Hashだと190バイトくらいだった。