ハッシュに含まれるキーや値を配列として取得
作成されたハッシュオブジェクトに含まれるキーや値だけを取り出すことができます。取り出された複数のキーや値は配列として取得します。キーだけを取得するには「keys」メソッド、値だけを取得するには「values」メソッド、キーと値の両方を取得するには「to_a」メソッドを使用します。
キーの一覧を配列として取得
ハッシュに含まれるキーの一覧を配列として取得するにはHashクラスで用意されている「keys」メソッドを使います。
オブジェクト.keys
ハッシュに含まれるキーを要素とする配列オブジェクトを返します。
具体的には次のように記述します。
hash = {"Lemon" => 100, "Orange" => 150} array = hash.keys
上記では、ハッシュに含まれるキーの「Lemon」と「Orange」を要素として持つ配列オブジェクトが作成されます。
値の一覧を配列として取得
ハッシュに含まれる値の一覧を配列として取得するにはHashクラスで用意されている「values」メソッドを使います。
オブジェクト.values
ハッシュに含まれる値を要素とする配列オブジェクトを返します。
具体的には次のように記述します。
hash = {"Lemon" => 100, "Orange" => 150} array = hash.values
上記では、ハッシュに含まれる値の「100」と「150」を要素として持つ配列オブジェクトが作成されます。
キーと値のペアの一覧を配列として取得
ハッシュに含まれるキーと値のペアを1つの配列として作成し、その配列を要素として持つ配列として取得するにはHashクラスで用意されている「to_a」メソッドを使います。
オブジェクト.to_a
この場合、ハッシュに含まれるキーと値は次のように配列として取得されます。
[[key1, values1], [key2, value2], ...]
ハッシュの要素であるキーと値を1つの配列として作成し、その配列を1つの要素とする配列を作成して返します。
具体的には次のように記述します。
hash = {"Lemon" => 100, "Orange" => 150} array = hash.to_a
上記では、["Lemon, 100]と["Orange", 150]の2つの配列を要素として持つ配列オブジェクトが作成されます。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku require "kconv" hash = {"Lemon" => 100, "Orange" => 150, "Banana" => 250} p hash print("¥n") print(Kconv.tosjis("keysメソッド¥n")); key_array = hash.keys p key_array print(Kconv.tosjis("valuesメソッド¥n")); value_array = hash.values p value_array print(Kconv.tosjis("to_aメソッド¥n")); array = hash.to_a p array
上記のプログラムを「test8-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )