Rubyの配列操作完全マニュアル | 追加 / 更新 / 削除 / 繰り返しの方法について現役エンジニアが解説

最終更新日:

この記事では、

  • Rubyで配列をどのように作るか知りたい
  • 配列から特定の要素をどうやって取り出すのか知りたい
  • 配列に新しい要素を追加する方法を学びたいがどうしたらいい?
  • 配列内の要素を削除する正しい方法は?
  • 配列を使って繰り返し処理を行う方法は?

という悩みを抱えている向けに、

  • Rubyの配列の基本的な作り方と操作方法
  • 配列を操作する具体的なコードの書き方
  • 効率良く配列を利用するための高度なテクニック

について、現役Railsエンジニアである私が解説していきたいと思います。

Rubyに関して言うと、配列の知識はないとほぼエンジニアとして一人前とは呼べないほど必須の知識です。マストで使えた方がよいメソッドになるので、ぜひ使えるようになりましょう。

著者:河合大

DAI
株式会社ワークスアプリケーションズにてQAエンジニア→株式会社AidemyにてAIプログラミングスクールのマーケティングを担当→キャリアコーチングサービスのパイオニアであるポジウィル株式会社にCMO就任→株式会社インディバースを創業。
IT系キャリアに関して情報発信しているDAINOTEを運営。自身も自社プロダクトであるMedia Analyticsの開発をRuby on Railsで行うWebエンジニアである。本業はWebマーケター。最近は生成AI系の開発にどハマり中。著書は独学プログラマーのためのAIアプリ開発がわかる本 。詳細は運営者情報をご覧ください。 @never_be_a_pm

Ruby配列の基礎知識

配列の初期化と基本形

Rubyで配列を作成する基本は非常にシンプルです。比較的直感的な記述で、複数の値をまとめて扱うことが可能になります。配列を初期化する際には、以下のように書くことができます。

# 配列を初期化する
fruits = ["apple", "banana", "cherry"]
puts fruits

このコードを実行すると、配列内の各要素が順に出力されます。

apple
banana
cherry

配列内の要素には、同じ型のデータだけでなく、異なる型のデータを混在させることが可能です。例えば、文字列と数値を一つの配列に格納することもできます。

mixed_array = ["Tokyo", 100, "Osaka", 200]
puts mixed_array

このように、Rubyの配列は非常に柔軟に扱うことが可能で、プログラム内で多種多様なデータを管理する際に大変役立ちます。

Ruby配列でできること

配列の要素の取得方法

Rubyで配列から特定の要素を取り出すには、インデックスを使用します。インデックスは、配列内の各要素の位置を示す数値で、0から始まります。以下のようにして、特定のインデックスにある要素を取得できます。

fruits = ["apple", "banana", "cherry"]
puts fruits[1]

このコードを実行すると、bananaが出力されます。これは、fruits配列のインデックス1にbananaが格納されているからです。

配列の要素の変更方法

配列の特定の要素を変更するには、その要素のインデックスを指定して新しい値を代入します。以下のコードでは、fruits配列の第1要素をorangeに変更しています。

fruits = ["apple", "banana", "cherry"]
fruits[1] = "orange"
puts fruits

実行結果:

apple
orange
cherry

このように、インデックスを利用して簡単に配列の要素を変更することができます。

配列に新しい要素を追加する方法

配列の末尾に新しい要素を追加するには、pushメソッドを使うか、<<演算子を使用します。次の例では、fruits配列にmangoを追加しています。

fruits = ["apple", "banana", "cherry"]
fruits.push("mango")
# あるいは fruits << "mango" とも書ける
puts fruits

実行結果は次のようになります。

apple
banana
cherry
mango

配列の要素を削除する方法

配列から要素を削除するには、delete_atメソッドを使用します。このメソッドには、削除したい要素のインデックスを指定します。

fruits = ["apple", "banana", "cherry"]
fruits.delete_at(1)
puts fruits

このコードを実行すると、インデックス1のbananaが削除されるため、以下のように表示されます。

apple
cherry

このようにRubyでは、配列の要素の管理が非常に簡単に行えます。次のセクションでは、より高度な配列の操作について学んでいきましょう。

Ruby配列の高度な操作

配列の要素を逆順にする方法

配列の要素の順番を逆にしたい場合、reverseメソッドを使用します。このメソッドは新しい配列を返すため、元の配列は変更されません。以下の例では、fruits配列の要素を逆順にしています。

fruits = ["apple", "banana", "cherry"]
reversed_fruits = fruits.reverse
puts reversed_fruits

実行結果:

cherry
banana
apple

この操作は、配列の内容を逆順で表示したいときや、特定の順序で処理したい場合に便利です。

配列の要素を並べ替える方法

配列の要素を並べ替えたい場合は、sortメソッドを使います。このメソッドは、デフォルトで昇順(小さい順)に要素をソートします。

numbers = [5, 3, 8, 4]
sorted_numbers = numbers.sort
puts sorted_numbers

実行結果

3
4
5
8

さらに、ブロックを渡すことでソートの基準をカスタマイズできます。たとえば、次の例では降順(大きい順)にソートしています。

sorted_numbers_desc = numbers.sort { |a, b| b <=> a }
puts sorted_numbers_desc

実行結果

8
5
4
3

配列の結合

2つの配列を結合する場合、+演算子またはconcatメソッドを使用します。これにより、新しい配列が作成されます。

array1 = [1, 2, 3]
array2 = [4, 5, 6]
combined_array = array1 + array2
# あるいは array1.concat(array2)
puts combined_array

実行結果:

1
2
3
4
5
6

こうして、複数の配列を合わせて1つの配列にすることができるため、データの集合を管理する際に便利です。

Ruby配列の便利なメソッド

Rubyには配列をより便利に扱うための多くのメソッドがあります。ここでは、その中から特に役立つメソッドをいくつか紹介します。

eachメソッド:要素の繰り返し

eachメソッドを使うと、配列の各要素に対してブロック内の処理を繰り返し実行できます。例えば、配列の要素を1つずつ出力したい場合は次のようにします。

fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
  puts fruit
end

これにより、配列の要素が順番に出力されます。

配列の長さを調べるメソッド

配列の長さ(要素の数)を知りたい場合は、lengthメソッドまたはsizeメソッドを使用します。

fruits = ["apple", "banana", "cherry"]
puts fruits.length

このコードの実行結果は3となります。どちらのメソッドも同じ結果を返すため、好みで選択してください。

配列が空かどうか調べる方法

配列が空かどうかを確認するには、empty?メソッドを使用します。このメソッドは、配列が空(要素が0個)の場合にtrueを、そうでない場合にfalseを返します。

fruits = []
puts fruits.empty?

上記のコードでは、fruits配列は空なので、trueが出力されます。

配列内の特定の要素を探す方法

配列内に特定の要素が存在するかどうかを調べるには、include?メソッドを使用します。このメソッドは、指定された要素が配列内に存在する場合にtrueを、存在しない場合にfalseを返します。

fruits = ["apple", "banana", "cherry"]
puts fruits.include?("banana")

実行結果はtrueです。このように、include?メソッドを活用することで、配列内のデータの存在チェックを簡単に行うことができます。

配列内の要素が全てある条件を満たすか調べる方法

配列の全ての要素が特定の条件を満たしているかどうかを調べるには、all?メソッドを使用します。例えば、全ての要素が数値であるかどうかをチェックするコードは次のとおりです。

numbers = [1, 2, 3, 4, 5]
puts numbers.all? { |number| number.is_a?(Integer) }

このコードの実行結果はtrueとなります。all?メソッドは、配列の要素全体に対する検証作業を効率的に行うのに適しています。

まとめ

Rubyでの配列の扱い方について、基本的な操作から高度なテクニックまで幅広く解説しました。配列はRubyにおいて非常に重要なデータ構造であり、プログラミングにおける多くの問題を解決する際に使われます。本記事で取り上げた内容は以下の通りです。

  • 配列の初期化や基本形、要素の取得や変更、新しい要素の追加、要素の削除などの基本操作
  • 配列の要素を逆順にする、要素を並べ替える、配列の結合などの高度な操作
  • eachメソッドでの要素の繰り返し処理、配列の長さの確認、配列が空かどうかのチェック、配列内の特定の要素を探す方法、配列内の要素が全てある条件を満たすか調べる方法などの便利なメソッド

これらの基礎を身につけることで、Rubyでのプログラミングがより一層楽しく、かつ効率的なものになるはずです。プログラミングを学習している方や、日々の開発作業でRubyを扱っている方は、是非これらの配列操作のテクニックを実践に取り入れてみてください。