hashの格納順番
ハッシュ表を作る際、配列を使って実装した。
HASH_SIZE = 11 TABLE = Array.new(HASH_SIZE) def set(key,val) #ハッシュをして、ハッシュ表にデータを格納 end set("hello","world") set("今日は","赤ちゃん") set("竹やぶ","焼けた") set("テレビ","ラジオ") set("ruby","red") set("sapphire","blue") set("121","11") set("富士","オーム") set("人","見頃")
これを実行すると
[["hello", "world"], ["ruby", "red"], ["121", "11"], ["人", "見頃"], ["今日は", "赤ちゃん"], ["富士", "オーム"], ["竹やぶ", "焼けた"], ["テレビ", "ラジオ"], ["sapphire", "blue"]]
設定順通りにはデータが格納されていない。
今まで使っていたhashだと
table = {} table["hello"] ="world" table["今日は"] ="赤ちゃん" table["竹やぶ"] ="焼けた" table["テレビ"] ="ラジオ" table["ruby"] ="red" table["sapphire"] ="blue" table["121"] ="11" table["富士"] ="オーム" table["人"] ="見頃"
実行すると
{"hello"=>"world", "今日は"=>"赤ちゃん", "竹やぶ"=>"焼けた", "テレビ"=>"ラジオ", "ruby"=>"red", "sapphire"=>"blue", "121"=>"11", "富士"=>"オーム", "人"=>"見頃"}
となり、設定順に格納されている。キーを基にハッシュ関数に書けると設定順にはならないので、別の配列などで順番を保持するものを作っておくこと。