酒とギャンブルと俺と妻

なんでもかんでもみんなブログで綴っているよ

【Ruby】配列

32歳で実務未経験からWEBエンジニアへ転職活動しています。
何か有益な情報あったらなんでもください!(パソコンを閉じて)

コーディングテストで躓きまくっているので
下記書籍を読みながらRubyという言語について学んでます。
amzn.to

今回はよく使う配列というオブジェクトと
配列で使うメソッドについて書いていきたいと思います。

まず配列ってなんぞやって方は下記で確認してください。
ja.wikipedia.org

データ構造の1つで複数の値や文字列を格納できる入れ物です。
下記画像のタンスみたいなもんです。1つのタンスのそれぞれの棚にいろんな物を収納できるんです。
https://publicdomainq.net/images/201611/28s/publicdomainq-0003195hhy.jpg

でこのタンス、いや配列。
インデックスまたは添字と呼ばれる、上の画像の例で言えば棚番が分かれば
棚の中身が一回で取得できるんです。
つまりデータ取得に時間がかからないのがメリットなんです。
また添字が分からなくても先頭から順番にとり出せるメソッドがあったり
また2次元配列にして値や文字列を格納することができたり
データの格納方法や取り出し方が様々で使いやすいんです。
※paizaのスキルチェックでとてもお世話になってる。

では実際どうRubyで書くのか見てみましょう!

#配列オブジェクトの作成方法
ary1 = Array.new  # => []
ary2 = []

#デフォルト値は下記で指定することができる。
ary3 = Array.new(2,0)  # => [0,0]
ary4 = [0,0]

#配列へ値や文字列を末尾に追加する方法
ary5 = []
ary5 << "a"
ary5.push("b")
p ary5  # => ["a","b"]

#配列へ値や文字列を先頭に追加する方法
ary6 = ["c"]
ary6.unshift("d")
p ary6  # => ["d","c"]

#複数、先頭へ追加することも可能
ary6.unshift("e","f")
p ary6  # => ["e","f","d","c"]

#挿入する方法
ary5.insert(1,"x")
p ary5  # => ["a","x","b"]   添字は0から始まるので1を指定すると2番目に挿入される。

#配列の値を変更する。値を変更したいインデックスを指定する。
ary6[0] = "a"
p ary6  # => ["a","f","d","c"]

#配列の値を削除する方法。まずは値を指定して削除する方法。
ary7 = [1,1,1,2,3,4,5,5]
ary7.delete(3)
p ary7  # => [1,1,1,2,4,5,5] 3だけ消える
ary7.delete(1)
p ary7  # => [2,4,5,5] 1の値が全て消える

#配列のインデックスを指定し削除する方法。
ary7.delete_at(0)
p ary7  # => [4,5,5] インデックスが0の1だけ削除される

#配列の先頭から順に削除する方法。
ary8 = [1,1,1,1,1,1,1,1]
ary8.shift()
p ary8  # => [1,1,1,1,1,1,1] 先頭の要素のみ削除される
ary8.shift(2)
p ary8  # => [1,1,1,1,1] 先頭の要素を指定した数だけ削除される

#配列の範囲を指定し削除する方法。
ary8.slice!(1,3)
p ary8  # => [1,1] インデックスが1から3までの要素が削除される

#おまけとして配列の繰り返し処理をご紹介。他の記事で詳しく繰り返し処理はご紹介する予定です。
ary9 = [1,2,3,4,5,6,7,8,9,10]

sum = 0

ary9.each do |n|
  sum += n
end

p sum  # => 55

とこんな感じで配列を作成し追加、挿入、削除が行えます。
これを組み合わせて色々な処理が書けるようになります!

Railsでテーブルから複数レコードを取得すると配列で帰ってきたり
コーディング問題にて配列で格納する機会も多かったり
覚えておくと役に立ちます。

是非、タンじゃなくて配列を使ってみてください!!

それではまた!