配列って実際にどうやって使うの?
配列の便利なメソッドを忘れた
今回は、配列の定義や配列の使い方、また配列を使う上で便利なメソッドなどについて説明していきます。
今回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
となります。
【なかなかエラーが解決できない…そんな悩みを解決します!】
登録無料で始められるプログラミングスクール「侍テラコヤ」
・回答率100%のQ&A掲示板でエラーを解決!
・現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!
配列の使い方
配列には様々な使い方があります。
今回は、初めて配列を扱う人向けに基本的な使い方をご紹介します。
追加
配列に要素を追加する方法は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を学ぶ上で配列の使い方や考え方は絶対に必要になってくるので、今回ご紹介したコードなどを実際に自分で動かしてみるといいかもしれませんね!