【Ruby】Array(配列)の基礎からさまざまな使い方まで徹底解説!

配列(Array)はいくつもの値を格納できて便利ですが、初心者にとっては変数と使い勝手が違うので戸惑ってしまうかもしれません。

  • 配列の使い方を理解したい
  • 配列やHashでよく使うメソッドを知っておきたい

この記事では、できるだけ多く網羅できるように、Rubyの配列、そしてHash(ハッシュ)でよく使われる便利メソッドや活用法などをまとめました。

・配列の基本
・配列・ハッシュの繰り返し処理
・変換、入れ替え
・要素の取得
・要素の作成または更新
・要素の追加
・要素の削除
・カウント
・調査
・四則演算、論理演算

これらのメソッドや活用法が有効な場面で、今後利用できるようにこの記事を何度も読んで基本的な使い方を頭に入れておきましょう。

まずは配列の基本をおさらい

配列とは複数の変数をまとめて管理する箱のようなものです。

変数は1つのオブジェクトにしか値を代入できないのに対して、配列を複数の値を代入することができます。

配列は以下のように記述します。

実行結果:

このように複数の値が格納された箱が配列と思っていただければ良いです。

そのため、共通しているグループや単位などの値をまとめて管理するときに非常に便利です。

そんな配列について、「配列の初期化」「配列の要素の取得」「配列のループ」「配列の出力」などの基本に関しては以下の記事で詳しく解説しています。

次項では、配列やハッシュで使用する便利なメソッドや活用について解説していきます!

配列やハッシュの便利メソッド

繰り返し処理

each(ブロックに要素を繰り返し渡す)

foreachのようなeach(ブロックにキーと値を繰り返し渡す)

each_key(ブロックにハッシュのキーだけ繰り返し渡す)

each_value(ブロックにハッシュの値だけ繰り返し渡す)

each_slice(配列を要素数ごとに分割する)

each_cons(配列を要素数ごとに1つずつずらして分割する)

each_line(ブロックに要素を行ごとに繰り返し渡す)

each_char(ブロックに要素を文字ごとに繰り返し渡す)

each_with_object (ブロックに値を渡して新たな配列を作成)

配列の場合

Hashの場合

reverse_each(ブロックに末尾から要素を繰り返し渡す)

each_index(ブロックにインデックスを繰り返し渡す)

each_with_index(ブロックに要素とインデックスを繰り返し渡す)

map, map!(ブロックが返す値からなる配列を作成)

mapメソッドは、配列の要素数分繰り返し処理を実行します。

要素ごとにブロックの処理が実行され、ブロックの戻り値を集めた配列を返します。

mapメソッドについては以下の記事でも詳しく解説しています。

配列でmapを使う

ハッシュでmapを使う

mapとwith_indexを組み合わせる

mapとnextを組み合わせる

select, select!(ブロックが真を返す要素からなる配列を作成)

collect, collect!(ブロックが返す値からなる配列を作成)

reject(ブロックが偽を返す要素からなる配列を作成)

変換、入れ替え

sort, sort!(要素のソート)

sort_by, sort_by!(ブロックの戻り値でソートする)

transpose(行と列の入れ替え)

要素の取得

first(最初の要素を取り出す)

last(最後の要素を取り出す)

slice(指定の位置や範囲の要素を取り出す)

fetch(指定の位置の要素を取り出し、範囲外ならデフォルト値を返す)

sample(要素をランダムに返す)

assoc(キーを元に配列の配列から配列を取り出す)

要素の作成または更新

drop(先頭からいくつかの要素を除いた配列を作成)

fill(指定した値で配列を満たす)

replace(自身を変更する)

reverse, reverse!(要素の順番を反転させる)

shuffle, shuffle!(要素をシャッフルする)

zip(複数の配列の要素の組み合わせを作る)

要素の追加

unshift(先頭に要素を追加)

push(末尾に要素を追加)

concat(末尾に配列を結合)

<<(末尾に要素を追加)

insert(指定した位置に要素を追加)

join(要素を結合した文字列を作成)

要素の削除

shift(先頭の要素を取り除いて返す)

pop(末尾の要素を取り除いて返す)

uniq, uniq!(重複する要素を削除)

compact, compact!(nilの要素を削除)

delete(要素を削除)

delete_at(指定した位置の要素を削除)

clear(配列を空にする)

カウント

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

length(要素の数を返す)

size(要素の数を返す)

調査

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

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

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

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

四則演算、論理演算

&(積集合)

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

+(配列どうしを連結)

-(差集合)

|(和集合)

Rubyの配列を体系的に学びたい方に

この記事は今更聞けない!Rubyの配列とは??基礎から発展まで!の一部となります。
この記事を読むことで、Rubyの配列の内容を体系的に学ぶことができます。
Rubyの配列の習得に必要な情報を一つにまとめているので、効率よくRubyを習得したい方は是非ごらんください。

まとめ

いかがでしたでしょうか?

この記事では、配列Hashのメソッドや活用法を網羅しました。

どのメソッドや活用法も配列、Hashを扱っていく上で必ず必要になってくるので、1つ1つの挙動を把握しておいてください。

もし配列、Hashのメソッドや活用法について忘れてしまったらこの記事を確認してくださいね!

経験豊富なエンジニアに相談したいあなたへ

「IT業界の実情についてエンジニアの生の声を聞きたい、既にIT業務の仕事をしていて解決したい課題があるから相談にのってもらいたい」そんな要望はございませんか?

周りにエンジニアをやっている人がいないと、実際の現場のことがイメージできず不安ですよね。

侍エンジニア塾の無料体験レッスンでは、ご質問内容によって「現役エンジニア」があなたの開発したいサービスへ技術的なアドバイスや、未経験から内定を獲得する転職活動の極意をお伝えいたします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

長瀬来

長瀬来

Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。

経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど

言語が好きで、英語や中国、ドイツ語を勉強しました。
将来的には海外で生活したいです。

現在はRuby on Rails5やCocos2dxの勉強を主にしています。

ライターとしては
できるだけ初心者にわかりやすい文章になるように心がけています。

趣味は語学、読書です。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説