2010年10月14日木曜日

【ruby】配列の操作

配列(array)の基本的な操作方法

要素の追加

# 末尾に"1"を追加
array.push "1"

# 末尾に"2"を追加
array >> "2"

# 任意の位置に値の挿入
array = ["2", "3"]
array.insert 1, "2"  # 2番目(0から始まるから)の要素("3")の直前に2を挿入
puts array           # ["1", "2", "3"]

array = ["1", "3"]
array.insert -1, "2" # 末尾から2番目の要素("1")の後ろに2を挿入
puts array           # ["1", "2", "3"]

# 先頭に要素を挿入
array = [1, 2, 3]
array.unshift(0)      # [0, 1, 2, 3]
array.unshift([1, 0]) # [[1, 0], 0, 1, 2, 3]
array.unshift(-1, -2) # [-1, -2, [1, 0], 0, 1, 2, 3]

要素の削除

array = [1, 2, 3, 4, 5]
array.delete(3)  # 指定された値と一致する要素が削除され、削除された値が返却される。削除後の要素は、[1, 2, 4, 5]となる。
array.delete(0)  #  削除対象が存在しないため、戻り値はnilとなる。

# 下記のようにblockを指定すると、削除対象がない場合はblockの結果が戻り値となる。
array.delete(0) {
  "'0' is not found."
}

array.delete_at(0)  # 0番目の要素を削除する。
array.delete_at(-1) # 末尾の要素を削除する。

キューやスタックみたいにあつかう

# キュー
array = []
array.push "1"  # [1]
array.push "2"  # [1, 2]
array.shift     # return 1, array = [2]
array.push "3"  # array = [2, 3]
array.shift     # return 2, array = [3]

# スタック
array = []
array.push "1"  # [1]
array.push "2"  # [1, 2]
array.pop       # return 2, array = [1]
array.push "3"  # array = [1, 3]
array.pop       # return 3, array = [1]

要素の全削除

array.clear

要素の存在チェック

array = ["1", "2", "3"]
array.include?("2") # true
array.include?("0") # false

各要素を結合

array = ["1", "2", "3"]
array = [1, 2, 3]
puts array.join       # 123
puts array.join(',')  # 1,2,3