【Ruby】Array,Hashオブジェクトの基本的な使い方と便利なメソッドを紹介 

RubyのArrayクラスやHashクラスはそれぞれ配列やハッシュを扱うためのクラスです。

Arrayクラス、Hashクラスにはそれぞれ配列やハッシュを操作するのに便利なメソッドが用意されています。

この記事ではRubyにおける配列やハッシュの基本からArrayクラス、Hashクラスの便利なメソッドを紹介していきたいと思います。

目次

配列やハッシュの定義

それではまず配列やハッシュの定義の仕方をそれぞれ見ていきましょう。

配列とは

配列とは複数のデータを1つの集まりとして扱うための箱のようなものです。

配列は[],を使って、定義します。

arr = ["apple", "orange", "lemon"]

[]で1つの集まりを表し、,で1つ1つの要素を区切って定義します。

また、Rubyでは配列の中に違うデータ型の要素を1つにまとめることができます。

arr = [1, "太郎", 20]

ハッシュとは

ハッシュとは連想配列とも呼ばれ、配列と同様に複数のデータを1つの集まりとして扱うためのものですが、要素をキーとバリューで指定して定義します。

キーとバリューを定義することで、各要素に意味を持たせることができます。

hash = { id: 1, name: "太郎", age: 20 }

キーにnameで、その値に"太郎"を定義することで、名前が太郎というデータだという意味を持つようになります。

ここが配列との大きな違いの1つですね。

また、ハッシュは下記のように定義することもできます。

hash = { "id" => 1, "name" => "太郎", "age" => 20 }

配列やハッシュの基本的な操作

次に配列やハッシュの基本的な操作を見てみましょう。

配列の操作

下記のように定義した配列に対して、取得や追加などの操作を行なっていきましょう。

arr = ["apple", "orange", "lemon"]

要素の取得

まずは配列の要素を取得してみましょう。

配列の要素を取得するには、配列名[インデックス番号]とすることで、指定の要素を取得することができます。

インデックス番号とは、添字とも呼ばれ、配列の何番目の要素かを表しています。

Rubyでは、配列の1番始めの要素のインデックス番号は0と決まっています。

val = arr[0]
p val
=> "apple"

要素の変更

配列の要素の値を変更するには、配列名[インデックス番号]に更新したい値を代入します。

arr[0] = "grape"
p arr
=> ["grape", "orange", "lemon"]

要素の追加

配列の末尾に要素を追加するには、<<を使って追加します。

arr << "grape"
p arr
=> ["apple", "orange", "lemon", "grape"]

ハッシュの操作

次は下記のように定義したハッシュに対して、取得や追加などの操作をそれぞれ行なってみましょう。

hash1 = { id: 1, name: "太郎", age: 20 }
hash2 = { "id" => 2, "name" => "次郎", "age" => 46 }

要素の取得

配列の要素の取得はインデックス番号を使用して取得していましたが、ハッシュの要素の取得はキーを使用して取得することができます。

val1 = hash1[:name]
p val1
=> "太郎"

val2 = hash2["name"]
p val2
=> "次郎"

要素の変更

要素の変更はキーで指定したハッシュに対して、更新したい値で代入を行うことでバリューの値を変更することができます。

hash1[:age] = 21
p hash1
=> {:id=>1 :name=>"太郎", :age=>21}

hash2["age"] = 47
p hash2
=> {"id"=>2, "name"=>"次郎", "age"=>47}

要素の追加

ハッシュへの要素の追加は新しいキーを用意して、そのキーに対する値を代入してあげることで追加することができます。

hash1[:key] = "hoge"
p hash1
=> {:id=>1 :name=>"太郎", :age=>21, :key=>"hoge"}

hash2["key"] = "hoge"
p hash2
=> {"id"=>2, "name"=>"次郎", "age"=>47, "key"=>"hoge"}

Arrayクラス、Hashクラスのメソッドを紹介

では配列を扱うArrayクラスやハッシュを扱うHashクラスの便利なメソッドをそれぞれ見ていきましょう。

Arrayクラスのメソッド

eachメソッド

配列の要素を順番に取り出して、配列の要素の数だけ処理を実行します。

arr = ["apple", "orange", "lemon"]

arr.each do |i|
    p i
end
=> "apple"
=> "orange"
=> "lemon"

変数iにarr配列の要素が順番に渡されて、do ~ end内の処理を繰り返し実行します。

empty?メソッド

空配列どうかを判定するメソッドです。

空配列の場合にtrueを返し、空配列でない場合にfalseを返します。

arr = ["apple", "orange", "lemon"]

p arr.empty?
=> false

lengthメソッド

配列の要素の数を返してくれます。

arr = ["apple", "orange", "lemon"]

p arr.length
=> 3

deleteメソッド

配列の要素の中から、引数で指定した値と==で等しい値を削除します。

arr = ["apple", "orange", "lemon"]

arr.delete("orange")
p arr
=> ["apple", "lemon"]

include?メソッド

配列の要素の中に、引数で指定した値と==で等しい値が含まれる場合にtrueを返します。

含まれない場合にはfalseを返します。

arr = ["apple", "orange", "lemon"]

p arr.include?("lemon")
=> true

Hashクラスのメソッド

eachメソッド

ハッシュのキーとバリューを順番に取り出して、ハッシュの要素の数だけ処理を実行します。

hash = { id: 1, name: "太郎", age: 20 }

hash.each do |k, v|
    p [k, v]
end
=> [:id, 1]
=> [:name, "太郎"]
=> [:age, 20]

empty?メソッド

ハッシュが空かどうか判定します。

空の場合にtrueを返し、空でない場合にfalseを返します。

hash = { id: 1, name: "太郎", age: 20 }

p hash.empty?
=> false

lengthメソッド

ハッシュの要素の数を返します。

hash = { id: 1, name: "太郎", age: 20 }

p hash.length
=> 3

deleteメソッド

引数で指定したキーの要素をハッシュから削除します。

hash = { id: 1, name: "太郎", age: 20 }

p hash.delete(:age)
=> { id: 1, name: "太郎" }

has_key?メソッド

ハッシュのキーの中に、引数で指定したキーが含まれる場合にtrueを返します。

含まれない場合にはfalseを返します。

hash = { id: 1, name: "太郎", age: 20 }

p hash.has_key?(:name)
=> true

has_value?メソッド

ハッシュのバリューの中に、引数で指定したバリューが含まれる場合にtrueを返します。

含まれない場合にはfalseを返します。

hash = { id: 1, name: "太郎", age: 20 }

p hash.has_value?("次郎")
=> false

まとめ

Rubyでの配列やハッシュの扱い方から、ArrayクラスやHashクラスの便利なメソッドの使い方まで紹介してきました。

プログラミングを行う上で、配列やハッシュを使うことは避けては通れないと言っても過言ではないでしょう。

この記事をきっかけに理解を深めて頂けると筆者も嬉しいです。

プログラミングスクールをお探しの方はこちら

フリーランス案件をお探しの方はこちら

エンジニア転職サイトをお探しの方はこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次