パンくず
Ruby
ハッシュ
ソート
概要
Rubyのソートについて
構文
以下の構文で、ハッシュからソート済みの二次元配列を取得出来ます。
hash.sort_by {|key, param|param} # =>param順にソート
サンプル
# -*- encoding: utf-8 -*- require "pp" class HashContents attr_accessor:name def initialize(name) @name = name end end hash = {tanaka:HashContents.new("tanaka"),suzuki:HashContents.new("suzuki"),sato:HashContents.new("sato")} sorted = hash.sort_by {|key, param|param.name} pp "before:#{hash}" # => ソート前は追加順に並んでいる pp "after:#{sorted}" # => ソート後はHashContentsのnameフィールドに設定した内容で並んでいる
出力
"before:{:tanaka=>#<HashContents:0x26a2808 @name=\"tanaka\">, :suzuki=>#<HashContents:0x26a27d8 @name=\"suzuki\">, :sato=>#<HashContents:0x26a27a8 @name=\"sato\">}" "after:[[:sato, #<HashContents:0x26a27a8 @name=\"sato\">], [:suzuki, #<HashContents:0x26a27d8 @name=\"suzuki\">], [:tanaka, #<HashContents:0x26a2808 @name=\"tanaka\">]]"