search
LoginSignup
0

posted at

【Ruby】配列の扱い方について逆引き形式でまとめてみた

はじめに

Rubyの配列について、やりたいことから逆引きできるようにまとめてみました!

配列とは

配列とは、複数の値をまとめて格納できるオブジェクトのこと

配列の例
fruits = ['りんご','みかん','ばなな'] #複数の値を一つまとめて変数として格納できる

上記の'りんご'や'みかん'など、配列内の各値を要素と呼ぶ

要素を設定したい場合

<記述方法>
変数 = [値1,値2,...]

a = [1,2,3] #数値
b = ['a','b','c'] #文字列
c = ['a',1,0.5] #=> 異なる種類の型も可能

要素の取得関連

指定した位置の要素を取得したい場合

<記述方法>
配列[位置]

要素の取得例
a = [1,2,3]
puts a[0] #=> 1
puts a[1] #=> 2
puts a[2] #=> 3

最後の要素を取得したい場合

<記述方法>

  • 配列[-1]
  • 配列.last
最後の要素を取得した例
a = [1,2,3]
puts a[-1] #=> 3
puts a.last #=> 3

最初の要素を取得したい場合

<記述方法>

  • 配列[0]
  • 配列.first
要素の取得例
a = [1,2,3]
puts a[0] #=> 1
puts a.first #=> 1

n番目からm個分の要素を取得したい場合

<記述方法>
配列[位置,個数]

3番目の要素から4個分の要素を取得する例
a = [1,2,3,4,5,6,7,8]
p a[2,4] #=>[3, 4, 5, 6]

要素を変更したい場合

<記述方法>
配列[index] = 変更する値

要素の変更例
a = [1,2,3]
a[0] = "1" 
a[1] = "りんご"
a[2] = 0 

p a #=> ["1", "りんご", 0]

要素の追加関連

要素を追加したい場合

<記述方法>
[] << 追加する値

要素の追加例
a = []
a << 1
a << 2
a << 3

p a #=> [1, 2, 3]

複数の値をまとめて配列に追加したい場合

<記述方法>
配列.push(値1,値2,...)

複数の値を追加する例
a = [1,2,3,4,5,6,7,8]
a.push(9,10,11)
p a #=>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

要素の削除関連

指定した値を削除したい場合

<記述方法>
配列.delete(削除する値)

指定した要素を削除する例
a = [1,2,3,1]
a.delete(1)
p a #=>[2, 3]

指定した位置の要素を削除したい場合

<記述方法>
配列.delete_at(位置)

指定した位置の要素を削除する例
a = [1,2,3,1]
a.delete_at(0)
p a #=>[2, 3, 1]

初期化関連

配列を初期化したい場合

<記述方法>

  • 変数 = []
  • 変数 = Array.new
配列の初期化例
a = []
b = Array.new

p a #=>#[]
p b #=>#[]

〜個の要素を持つ配列を初期化したい場合

<記述方法>
変数 = Array.new(要素数)

〜個の要素を持つ配列を初期化する例
a = Array.new(5)
p a #=>#[nil, nil, nl, nil, nil]

a = Array.new(5,0)
p a #=> [0, 0, 0, 0, 0]

配列を変数に分けて格納したい場合

<記述方法>
変数1,変数2,変数3 = 配列

配列を変数に分けて格納した例
a = [1,2,3]
b,c,d = a
puts b,c,d

#=> 1
# 2
# 3

配列を変数に分けて格納したい場合(余りがでる場合)

<記述方法>
変数1,変数2,*変数3 = 配列

配列を変数に分けて格納した例
a = [1,2,3,4,5]
b,c,d,*e = a
p b,c,d,e

#=> 1
# 2
# 3
# [4, 5]

連結関連

配列を連結させたい場合

<記述方法>
配列a + 配列b

配列を変数に分けて格納した例
a = [1,2,3] 
b = [3,4,5]

p a + b #=>[1, 2, 3, 3, 4, 5]

配列aに配列bを連結させたい場合

<記述方法>
配列a.concat(配列b)

配列aに配列bを連結させた例
a = [1,2,3] 
b = [3,4,5]

a.concat(b)
p a #=> [1, 2, 3, 3, 4, 5]

#集合関連

配列aと配列bの重複値を排除した配列cを生成する場合

<記述方法>
配列a | 配列b

和集合の例
a = [1,2,3] 
b = [3,4,5]

c = a | b
p c #=> [1, 2, 3, 4, 5]

配列aと配列bに共通する値を格納した配列cを生成する場合

<記述方法>
配列a & 配列b

積集合の例
a = [1,2,3] 
b = [3,4,5]

c = a & b
p c #=> [3]

配列aから配列bの値を排除した配列cを生成する場合

<記述方法>
配列a - 配列b

差集合の例
a = [1,2,3] 
b = [3,4,5]

c = a - b
p c #=> [3]

配列展開関連

配列を展開して、複数の引数として使用する場合

<記述方法>
*配列

配列の展開(splat展開)例
a = [1,2,3,4,5]

p a 
#=>[1, 2, 3, 4, 5]

p *a
#=>1
# 2
# 3
# 4
# 5

引数の数が可変なメソッドを定義する場合

<記述方法>
def a(*引数)
end

引数の数が可変なメソッドを定義した例
def a(val1,val2,*val3)
    p val1
    p val2
    p val3
end

a(1,2,3,4,5,6)
#=>1
# 2
# [3, 4, 5, 6]

文字列⇨配列関連

文字列を値に持つ配列を簡潔に書く方法

<記述方法>
%w(文字列1 文字列2 文字列3) 

<結果>
["文字列1","文字列2","文字列3"]

%w記法の例
a = ["a","b","c"]
b = %w(a b c)

p a #=>["a", "b", "c"]
p b #=>["a", "b", "c"]

文字列を値に持つ配列を簡潔に書く方法

<記述方法>
%w(文字列1 文字列2 文字列3) 

<結果>
["文字列1","文字列2","文字列3"]

%w記法の例
a = ["a","b","c"]
b = %w(a b c)

p a #=>["a", "b", "c"]
p b #=>["a", "b", "c"]

文字列を一文字ずつ分割して配列にする場合

<記述方法>
'abcde'.chars

<結果>
["a", "b", "c", "d", "e"]

文字列を分割して配列にする例
a = 'abcde'.chars
p a #=>["a", "b", "c", "d", "e"]

文字列を一文字ずつ分割して配列にする場合

<記述方法>
'abcde'.chars

<結果>
["a", "b", "c", "d", "e"]

文字列を分割して配列にする例
a = 'abcde'.chars
p a #=>["a", "b", "c", "d", "e"]

文字列を指定の区切り文字毎に分割して配列にする場合

<記述方法>
'abcde'.split(区切り文字)

<結果>
["a", "b", "c", "d", "e"]

文字列を指定の区切り文字毎に分割して配列にする例
a = 'a,b,c,d,e'.split(',')
p a #=>["a", "b", "c", "d", "e"]
``

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0