カテゴリ: Ruby 更新日: 2025/12/22

Ruby配列の検索と取得を完全解説!index・rindex・include?・find・bsearch入門【初心者向け】

検索と取得:index・rindex・include?・find・bsearch の使い方
検索と取得:index・rindex・include?・find・bsearch の使い方

先生と生徒の会話形式で理解しよう

生徒

「配列にたくさんデータが入ってきたら、目的のデータを探すのが大変そうです…」

先生

「Rubyには、配列の中身を簡単に検索できる命令が用意されています。」

生徒

「文字を探したり、数字を見つけたりもできますか?」

先生

「もちろんできます。探し方はいくつかあるので、基本から順番に見ていきましょう。」

1. 配列の検索と取得とは?

1. 配列の検索と取得とは?
1. 配列の検索と取得とは?

Rubyの配列(Array)は、複数のデータを順番にまとめて保存できます。 しかし、数が増えてくると「どこに何があるか分からない」状態になります。 そこで必要になるのが検索取得です。

検索とは「条件に合うデータがあるか調べること」、 取得とは「見つかったデータや場所を取り出すこと」を指します。 本棚から特定の本を探す作業と同じイメージです。

2. index:最初に見つかった位置を調べる

2. index:最初に見つかった位置を調べる
2. index:最初に見つかった位置を調べる

indexは、配列の中から指定した値を探し、 最初に見つかった場所の番号を返します。 この番号をインデックスと呼び、0から始まります。


fruits = ["りんご", "みかん", "バナナ"]
puts fruits.index("みかん")

1

もし見つからなかった場合は、何もないことを表す値が返ります。 これは「存在しない」という意味になります。

3. rindex:後ろから探して位置を取得する

3. rindex:後ろから探して位置を取得する
3. rindex:後ろから探して位置を取得する

rindexは、indexと似ていますが、 配列の後ろ側から検索します。 同じ値が複数ある場合、最後に見つかった位置を知りたいときに使います。


numbers = [1, 2, 3, 2, 1]
puts numbers.rindex(2)

3

最後に登場する場所を調べたいときに便利な命令です。

4. include?:含まれているかを調べる

4. include?:含まれているかを調べる
4. include?:含まれているかを調べる

include?は、配列の中に指定した値が 「含まれているかどうか」だけを調べます。 結果はtruefalseで返ります。


colors = ["赤", "青", "黄"]
puts colors.include?("青")

true

場所は不要で、「あるかどうか」だけ知りたいときに使います。 チェック作業にとても向いています。

5. find:条件に合う要素を取り出す

5. find:条件に合う要素を取り出す
5. find:条件に合う要素を取り出す

findは、条件に合う要素を 配列の先頭から順番に探し、最初に見つかった要素を返します。 条件とは「数字が大きい」「文字が一致する」などの決まりです。


numbers = [10, 20, 30, 40]
result = numbers.find { |n| n > 25 }
puts result

30

「条件に合う最初の一つ」を取得したいときに活躍します。

6. bsearch:効率よく探す特別な検索

6. bsearch:効率よく探す特別な検索
6. bsearch:効率よく探す特別な検索

bsearchは、整列された配列を前提に、 効率よく検索を行う特別な命令です。 本の索引を使って探すようなイメージです。

配列は、あらかじめ小さい順や大きい順に 並んでいる必要があります。


numbers = [10, 20, 30, 40, 50]
result = numbers.bsearch { |n| n >= 35 }
puts result

40

データが多いときでも素早く探せるのが特徴ですが、 初心者は「並び順が必要」という点を覚えておきましょう。

7. 検索方法を使い分けるコツ

7. 検索方法を使い分けるコツ
7. 検索方法を使い分けるコツ

配列の検索には、それぞれ得意な場面があります。 場所を知りたいならindexやrindex、 存在確認ならinclude?、 条件付き取得ならfind、 効率重視ならbsearchが向いています。

Rubyの配列検索を理解すると、 データの扱いが一気に楽になります。 初心者のうちは、動きをイメージしながら 一つずつ試すことが大切です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Rails
Rails GoodJob入門!PostgreSQLベースのバックグラウンド処理を初心者向けに完全解説
New2
Ruby
Rubyで学ぶビット演算入門:&・|・^・~・<<・>>の基礎と実例
New3
Rails
RESTとRailsの関係を徹底解説!resources設計と7つの標準アクションを初心者向けにわかりやすく解説
New4
データベース
MySQLアーキテクチャ入門!初心者向けに基本構造と仕組みを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.7
Java&Spring記事人気No7
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説