【Ruby入門】配列の基礎から応用的な使い方まとめ

配列ってよく聞くけど何?
配列って実際にどうやって使うの?
配列の便利なメソッドを忘れた

今回は、配列の定義や配列の使い方、また配列を使う上で便利なメソッドなどについて説明していきます。
今回Rubyを自分のPCで使う方法についてはこちらの記事に詳しく書いてありますので、参考にしてください。

目次

配列とは?

配列とは、データをたくさん詰められる箱のようなものです。そしてそのデータの1つ1つを要素と言います。
例えば、

fruits = [“apple”,”berry”,”banana”]

という配列においては、配列名は fruits で要素は apple berry banana になります。

また、この要素ひとつ1つには順番に番号がついており

apple   → 0
berry   → 1
banana   → 2

と、0から始まる順番がついています。

例えば、appleだけ出力したい場合

fruits = [“apple”,”berry”,”banana”]

puts fruits[0]

とすれば、実行結果は

apple

となります。

配列の使い方

配列には様々な使い方があります。
今回は、初めて配列を扱う人向けに基本的な使い方をご紹介します。

追加

配列に要素を追加する方法は3つあります。

今回は、fruitsという配列にlemonという要素を追加していきます。

まず1つ目は

fruits = [“apple”,”berry”,”banana”]
fruits[3] = “lemon” //fruitsの3番目に"lemon"を追加

puts fruits //出力して確認

とすると
実行結果は

apple
berry
banana
lemon

となります。
2つ目は

fruits = [“apple”,”berry”,”banana”] 

fruits.push(“lemon”) //追加

puts fruits // 出力して確認

と、pushメソッドを使って追加をしても同じ実行結果になります

3つ目の方法は

fruits = [“apple”,”berry”,”banana”]
Fruits << “lemon” // 追加
Puts fruits //出力して確認

としても同じ実行結果を得ることができます。

更新

次は更新について説明します。

今回はfruitsという配列のappleという要素をpeachに更新する例をご紹介します。

fruits = [“apple”,”berry”,”banana”] 

fruits [0] = “peach” //0番のappleをpeachに更新

puts fruits //出力して確認

とすれば
実行結果は

peach

berry

banana

になります。

削除

fruits = [“apple”,”berry”,”banana”]

に対して、berryを削除してみます。
その場合は

fruits = [“apple”,”berry”,”banana”]

fruits.delete(“berry”); //deleteメソッドを使いberryを削除

puts fruits //出力して確認

というコードを打ち込んだ実行結果は

apple

banana

となります。

取得

取得は一番最初に説明した

fruits = [“apple”,”berry”,”banana”]

とあった場合に
appleだけ出力したい場合

fruits = [“apple”,”berry”,”banana”]
puts fruits[0]

とすれば
appleのみ出力されます。

配列とその他のメソッドの紹介【応用】

eachメソッド

Rubyを扱う上で配列に対して最も使う頻度が多いeachメソッドについて最後に解説します。

Eachメソッドの基本構文

オブジェクト.each do |変数|
実行する処理1
実行する処理2
end

例えば、今回使用した
Fruits配列を使用した例をご紹介します。

fruits = ["apple","berry","banana"]

fruits.each do |hoge| //each文を定義する(hogeは要素の中身全てを表す)

print hoge + ","  //要素の中身1つ1つに","をつけて出力させる

end //each文終了

とすると実行結果は

apple,berry,banana,

となります。
このように、each文は要素の中身1つ1つに対して実行内容を指定することができます。

これ以外にもたくさん配列を使用するメソッドはありますので、興味が湧いた方はこちらの記事を参考にしてみてください

lengthメソッド・sizeメソッド・countメソッド

length(要素の数を返す)

array = [1, 2, 3]
array.length # 実行結果 3

単純に配列の要素数を調べたい場合はlengthメソッドを使用します。lengthにはarrayクラスとstringクラスの二種類があります。

size(要素の数を返す)

array = [1, 2, 3]
p array.size # 実行結果 3

sizeはlengthメソッドと同じ結果を返します。sizeにはarrayクラスとstringクラスの二種類があります。

見た目的にはsizeメソッドのほうがソースコードを確認したときに、何をしていたかわかりやすい記述になります。

count(指定の要素の数を数える)

array = [1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]
p array.count(3) # 実行結果 3

配列の中に同じ値がいくつあるか調べたい場合はcountメソッドが便利です。

引数に値を指定することで、その値がいくつかるかを取得できます。

empty?メソッド・include?メソッド・any?メソッド・all?メソッド

empty?(配列が空かどうか調べる)

arr = []
p arr.empty? # 実行結果 true

array = [1, 2, 3]
p array.empty? # 実行結果 false

配列の中身が空かどうか確認したい場合はempty?メソッドを使用します。

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

include?(要素が含まれるか調べる)

array = [1, 2, 3]
p array.include?(3) # 実行結果 true

配列に指定した要素が含まれているか確認したいときはinclude?メソッドを使用します。

指定した引数が配列の要素に含まれていればtrue、含まれていない場合はfalseを返します。

any? (最低1つでも条件を満たすか調べる)

array = [1,2,3]
p array.any?{|a| a > 2} # 実行結果 true

配列の中に1つでも条件を満たす要素が含まれているか調べるにはany?メソッドを使用します。

このプログラムでは値が2より大きい要素が含まれていた場合、trueを返しています。

all? (すべての要素が条件を満たすか調べる)

array = [1,2,3]
p array.all?{|a| a > 2} # 実行結果 false

配列の要素が全て指定した条件に満たしているか確認したい場合はall?メソッドを使用します。

条件が全て満たしている場合はtrue、満たしていない場合はfalseを返します。

四則演算、論理演算

&(積集合)

array_1 = [1, 1, 2, 2, 3, 3, 4, 5, 7]
array_2 = [1, 2, 3, 3, 6, 7, 8]
p array_1 & array_2 # 実行結果 [1, 2, 3, 7]

&(積集合)は2つの配列の積集合を作成します。2つの配列の要素から一致する要素を取得して、新しい配列が作成されます。

*(配列の内容を繰り返した配列を作成)

array = [1, 2, 3]
p array * 5 # 実行結果 [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

*(乗算)を使用すると、同じ要素を繰り返した配列が作成されます。

ここでは5で乗算しているため、同じ要素の内容を5回繰り返した配列が作成されます。

+(配列どうしを連結)

array = ["Samurai", "Ruby", "Rails"]
p array + ["Swift", "Java"] 
# 実行結果 ["Samurai", "Ruby", "Rails", "Swift", "Java"]

+(加算)を使用すると、配列同士を連結することができます。

-(差集合)

array_1 = [1, 1, 2, 2, 3, 3, 4, 5, 7]
array_2 = [1, 2, 3, 3, 6, 7, 8]
p array_1 - array_2 # 実行結果 [4, 5]

減算(-)を使用すると、重複している要素が取り除かれた配列が作成されます。

|(和集合)

array_1 = [1, 1, 2, 2, 3, 3, 4, 5, 7]
array_2 = [1, 2, 3, 3, 6, 7, 8]
p array_1 | array_2 # 実行結果 [1, 2, 3, 4, 5, 7, 6, 8]

| を配列で使用すると、重複している要素が取り除かれた配列が作成されます。

まとめ

今回は、配列の意味や、実用的な使い方やeachメソッドを使用した応用例などをご紹介していきました。

Rubyを学ぶ上で配列の使い方や考え方は絶対に必要になってくるので、今回ご紹介したコードなどを実際に自分で動かしてみるといいかもしれませんね!

この記事を書いた人

兵庫県西宮市出身。現在大学4年生。プログラミングスクールを卒業したのち株式会社SAMURAIでインターン生として活動中。
記事の執筆や編集、業務改善システムの改善を担当中。

目次