Rubyの配列の仕組みと使い方のサンプルです。
仕組み | 配列とは |
作成/確認 | 配列を宣言して値をセット / 配列に初期値をセット / instance_of? |
値を取得 | for文 / eachメソッド / length / count |
追加/変更 | push / << / insert / 配列の値を変更 |
削除 | delete / 全ての要素を削除 |
並び替え | sort / reverse |
連結/コピー | join / concat |
二次元配列 | 二次元配列を作成 /入れ子の構造の配列 |
配列とは
a = [ 値1 , 値2 , 値3 ]; |
上記は複数の値を変数aに代入しています。
この変数aは配列として複数の値を持ちます。
配列の図
- 1つの変数で複数の値を保持できます。
- 各項目を要素(element)といいます。
- 要素の位置をインデックス(添字)で管理します。上記図では[0]、[1]、[2]、[3]です。
- インデックスは0から始まります。
- Rubyの配列は、要素ごとにデータ型が異なっていても格納可能です。
→例:配列の値として文字列型、数値型、論理型をセットする。 - Rubyの配列は可変長です。要素の追加や削除は可能です。
配列を宣言して値をセット
a = []
a[0] = "赤"
a[1] = "黄"
puts a[0] # 赤
puts a[1] # 黄
1行目で空の配列を作成し、2,3行目で値をセットしています。
配列を宣言して値をセット
a = ["赤", "黄", "青"]
puts a[0] # 赤
puts a[1] # 黄
puts a[2] # 青
1行目は、リテラルで配列を作成しています。リテラルとはコード中に記述された値です。
instance_of? 配列か確認する
a = ["赤", "黄", "青"]
puts a.instance_of?(Array) # true
b = "あいう"
puts b.instance_of?(Array) # false
instance_of?(Array)は、対象が配列のときはtrue、そうでない場合はfalseを返します。
for文 配列の値を取得する
color = ["赤", "黄", "青"]
for c1 in color
puts c1 # 赤 黄 青が出力される
end
for i in 0..color.length - 1
puts color[i] # 赤 黄 青が出力される
end
eachメソッド 配列の値を取得する
color = ["赤", "黄", "青"]
color.each do |c1|
puts c1 # 赤 黄 青が出力される
end
length 要素数を返す
color = ["赤", "黄", "青"]
puts color.length # 3が出力される
count 引数に一致する要素数を返す
color = ["赤", "黄", "赤"]
puts color.count("赤") # 2が出力される
push 配列の末尾に要素を追加
color = ["赤", "黄", "青"]
color.push("白")
puts color # 赤 黄 青 白
<< 配列の末尾に要素を追加
color = ["赤", "黄", "青"]
color << "白"
puts color # 赤 黄 青 白
insert 任意の位置に要素を追加
1つめの引数の位置に2つめの値を追加します。最初の文字の位置は0です。
color = ["赤", "黄", "青"]
color.insert(2, "白")
puts color # 赤 黄 白 青
配列の値を変更する
インデックス(添字)で変更したい要素を指定して値を代入します。
color = ["赤", "黄", "青"]
color[1] = "オレンジ"
puts color # 赤 オレンジ 青
delete 指定の要素を削除
color = ["赤", "黄", "青"]
color.delete("黄")
puts color # 赤 青
全ての要素を削除
空の配列を代入すると全ての要素を削除します。
color = ["赤", "黄", "青"]
color = []
puts color # 出力なし
sort 昇順にソート
a = ["い", "あ", "う"]
b = a.sort
puts b # あ い う
reverse 逆順にする
a = ["い", "あ", "う"]
b = a.reverse
puts b # う あ い
join 引数の区切り文字で連結して新しい文字列を返す
a = ["あ", "い", "う"]
b = a.join(",")
puts b # あ,い,う
concat 配列を連結して新しい配列を返す
a = ["あ", "い", "う"]
b = ["A", "B", "C"]
c = a.concat(b)
puts c # あ い う A B C
二次元配列を作成
a =
["あ", "い", "う"],
["A", "B", "C"]
puts a[0][0] # あ
puts a[0][1] # い
puts a[0][2] # う
puts a[1][0] # A
puts a[1][1] # B
puts a[1][2] # C
入れ子の構造の配列
a =
"文字",
["あ", "い", "う"],
["A", "B", "C"]
puts a[0] # 文字
puts a[1] # あ い う
puts a[2] # A B C
puts a[1][0] # あ
puts a[1][1] # い
puts a[1][2] # う
関連の記事