1. 기본 Hash 정렬
참고] Ordered Hash는 , Hash에 값을 대입시 순서대로 저장을 한다.
(여기 참고)require 'ordered_hash' h = OrderedHash.new(0) h["1st"] = 5 h["2nd"] = 3 h["3th"] = 7 #Hash의 Value의 내림차순으로 정리하여 배열로 지정 a = Array.new(0) a = h.sort { |a,b| b[1]<=>a[1] } [결과] a = [["3th",7],["1st",5],["2nd",3] ]2. Struct Type 정렬
require "ordered_hash"
h1 = OrderedHash.new(0)
s1 = Struct.new(:name, :zip)
h1["2020"] = s1.new("smith", 100)
h1["1010"] = s1.new("tom", 200)
#key (2020 or 1010) 별로 정렬
h1.sort {|a,b| b[0]<=>a[0]}
#Struct "zip" 별로 정렬
h1.sort {|a,b| b[1].zip<=>a[1].zip}
3. OpenStruct Type정렬
OpenStruct는, 동적으로 Struct에 멤버을 추가할 수 있는 특징이 있다.
require "ostruct"
h2 = OrderedHash.new(0)
h2["1010"] = OpenStruct.new(:name => "smith", :zip=>100)
h2["2020"] = OpenStruct.new(:name => "smith", :zip=>100)
#Struct "zip"별로 정렬
h2.sort {|a,b| b[1].zip<=>a[1].zip}