Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス

class Array

クラスの継承リスト: Array < Enumerable < Object < Kernel

要約

配列クラスです。 配列は任意の Ruby オブジェクトを要素として持つことができます。

一般的には配列は配列式を使って

[1, 2, 3]

のように生成します。

特異メソッド

定義 説明
self[*item] -> Array

引数 item を要素として持つ配列を生成して返します。

new(size = 0, val = nil) -> Array

長さ size の配列を生成し、各要素を val で初期化して返します。

new(ary) -> Array

指定された配列 ary を複製して返します。 Array#dup 同様 要素を複製しない浅い複製です。

new(size) {|index| ... } -> Array

長さ size の配列を生成し、各要素のインデックスを引数としてブロックを実行し、 各要素の値をブロックの評価結果に設定します。

インスタンスメソッド

定義 説明
self & other -> Array

集合の積演算です。両方の配列に含まれる要素からなる新しい配列を返 します。重複する要素は取り除かれます。

self * times -> Array

配列の内容を times 回 繰り返した新しい配列を作成し返します。 値はコピーされないことに注意してください[[trap:Array]]。

self * sep -> String

指定された sep を間にはさんで連結した文字列を生成して返します。Array#join(sep) と同じ動作をします。

self + other -> Array

自身と other の内容を繋げた配列を生成して返します。

self - other -> Array

自身から other の要素を取り除いた配列を生成して返します。

self << obj -> self

指定された obj を自身の末尾に破壊的に追加します。Array#push と同じです。

self <=> other -> -1 | 0 | 1

自身と other の各要素をそれぞれ順に <=> で比較していき、結果が 0 でなかった場合に その値を返します。各要素が等しく、配列の長さも等しい場合には 0 を返します。 各要素が等しいまま一方だけ配列の末尾に達した時、自身の方が短ければ -1 をそうでなければ 1 を返します。

self == other -> bool

自身と other の各要素をそれぞれ順に == で比較し て、全要素が等しければ true を返します。そうでない場合には false を返します。

self[nth] -> object | nil

nth 番目の要素を返します。nth 番目の要素が存在しない時には nil を返します。

self[range] -> Array | nil

Range オブジェクト range の範囲にある要素からなる部分配列を返します。 range の first の値が配列の範囲に収まらない場合 nil を返します。 range の first が end より後にある場合には空の配列を返します。

self[start, length] -> Array | nil

start 番目から length 個の要素を含む部分配列を返します。 length が負の時、start が自身の範囲を越えた時には nil を返します。

self[nth] = val

nth 番目の要素を val に設定します。nth が配列の範囲を越える時には配列の長さを自動的に拡張し、 拡張した領域を nil で初期化します。

self[range] = val

Range オブジェクト range の範囲にある要素を配列 val の内容に置換します。 range の first が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。

self[start, length] = val

インデックス start から length 個の要素を配列 val の内容で置き換えます。 start が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。

assoc(key) -> Array | nil

配列の配列を検索して、その 0 番目の要素が key に等しい最初の 要素を返します。比較は == 演算子を使って行われます。 該当する要素がなければ nil を返します。

at(pos) -> object

配列の pos の位置にある要素を返します。 self[pos] と同じです。

choice -> object

配列の要素を1個ランダムに選んで返します。

clear -> self

配列の要素をすべて削除して空にします。

clone -> Array
dup -> Array

レシーバと同じ内容を持つ新しい配列を返します。

collect! {|item| ..} -> self
map! {|item| ..} -> self
collect! -> Enumerable::Enumerator
map! -> Enumerable::Enumerator

各要素を順番にブロックに渡して評価し、その結果で要素を 置き換えます。

combination(n) {|c| block } -> Array
combination(n) -> Enumerable::Enumerator

サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。

compact -> Array
compact! -> self | nil

compact は自身から nil を取り除いた配列を生成して返します。 compact! は自身から破壊的に nil を取り除き、変更が 行われた場合は self を、そうでなければ nil を返します。

concat(other) -> self

配列 other を自身の末尾に破壊的に連結します。

cycle {|obj| block }

Enumerable オブジェクトの要素を、繰り返し無限に生成し続けます。

delete(val) -> object | nil
delete(val) { ... } -> object

指定された val と == で等しい要素を自身からすべて取り除きます。 val と等しい要素が見つかった場合は、val を返します。 そうでない場合には nil を返します。

delete_at(pos) -> object | nil

指定された位置 pos にある要素を取り除きそれを返します。 pos が範囲外であったら nil を返します。

delete_if {|x| ... } -> self
reject! {|x| ... } -> self | nil
delete_if -> Enumerable::Enumerator
reject! -> Enumerable::Enumerator

要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。 delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します。

each {|item| .... } -> self
each -> Enumerable::Enumerator

各要素に対してブロックを評価します。

each_index {|index| .... } -> self
each_index -> Enumerable::Enumerator

各要素のインデックスに対してブロックを評価します。

empty? -> bool

自身の要素の数が 0 の時に真を返します。そうでない場合に false を返します。

eql?(other) -> bool

自身と other の各要素をそれぞれ順に Object#eql? で比較して、全要素が等しければ真を返 します。そうでない場合に false を返します。

fetch(nth) -> object
fetch(nth, ifnone) -> object
fetch(nth) {|nth| ... } -> object

nth 番目の要素を返します。

fill(val) -> self
fill {|index| ... } -> self

すべての要素に val をセットします。

fill(val, start, length = nil) -> self
fill(val, range) -> self
fill(start, length = nil) {|index| ... } -> self
fill(range) {|index| ... } -> self

配列の指定された範囲すべてに val をセットします。

first -> object | nil

配列の先頭の要素を返します。要素がなければ nil を返します。

first(n) -> Array

先頭の n 要素を配列で返します。n は 0 以上でなければなりません。

flatten(lv = nil) -> Array
flatten!(lv = nil) -> self | nil

flatten は自身を再帰的に平滑化した配列を生成して返します。flatten! は 自身を再帰的かつ破壊的に平滑化し、平滑化が行われた場合は self をそうでない 場合は nil を返します。 lv が指定された場合、lv の深さまで再帰的に平滑化します。

hash -> Integer

自身のハッシュ値を整数で返します。ハッシュ値は自身の各要素のハッシュ値から 計算されます。Array#eql? で比較して等しい配列同士は同じハッシュ値を返します。

include?(val) -> bool

配列が val と == において等しい要素を持つ時に真を返します。

index(val) -> Integer | nil
index {|item| ...} -> Integer | nil

指定された val と == で等しい最初の要素の位置を返します。 等しい要素がひとつもなかった時には nil を返します。

indexes(*index)
indices(*index)

このメソッド obsolete です。 代わりに Array#values_at を使用します。 使用すると警告メッセージが表示されます。

insert(nth, *val) -> self

インデックス nth の要素の直前(nth が負の場合は直後)に第 2 引数以降の値を挿入します。 引数 val を一つも指定しなければ何もしません。

inspect -> String

自身の情報を人間に読みやすい文字列にして返します。

join(sep = $,) -> String

配列の要素を文字列 sep を間に挟んで連結した文字列を返します。

last -> object | nil

配列の末尾の要素を返します。配列が空のときは nil を返します。

last(n) -> Array

末尾の n 要素を配列で返します。n は 0 以上でなければなりません。

length -> Integer
size -> Integer

配列の長さを返します。配列が空のときは 0 を返します。

nitems -> Integer
nitems {|obj| ... } -> Integer
pack(template) -> String

配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。

permutation(n) { |p| block } -> Array
permutation(n) -> Enumerable::Enumerator

サイズ n の順列をすべて生成し,それを引数としてブロックを実行します。

pop(n = 1) -> Array | nil

自身の末尾から指定された n 個だけ要素を取り除いてそれを返します。 自身が空配列の時は nil を返します。

product(*lists) -> Array

レシーバの配列と引数で与えられた配列(複数可)のそれぞれから要素を1 個ずつとって配列とし,それらのすべての配列を要素とする配列を返します。

push(*obj) -> self

指定された obj を順番に配列の末尾に追加します。 引数を指定しなければ何もしません。

rassoc(obj) -> Array | nil

自身が配列の配列であると仮定して、要素の配列でインデックス 1 の要素が obj に等しいものを検索し見つかった最初の要素を返 します。該当する要素がなければ nil を返します。

replace(another) -> self

配列の内容を配列 another の内容で置き換えます。

reverse -> Array
reverse! -> self

reverse は自身の要素を逆順に並べた新しい配列を生成して返します。 reverse! は自身を破壊的に並べ替えます。 reverse! は self を返します。

reverse_each {|item| ... } -> self
reverse_each -> Enumerable::Enumerator

各要素に対して逆順にブロックを評価します。

rindex(val) -> Integer | nil
rindex {|item| ... } -> Integer | nil

指定された val と == で等しい最後の要素の位置を返します。 等しい要素がひとつもなかった時には nil を返します。

shift(n = 1) -> Array | nil

自身の先頭から指定された n 個だけ要素を取り除いてそれを返します。

shuffle -> Array

配列の要素をシャッフルして,その結果を配列として返します。

shuffle! -> self

配列を破壊的にシャッフルします。

slice(nth) -> object | nil

指定された自身の要素を返します。Array#[] と同じです。

slice(pos, len) -> Array | nil
slice(range) -> Array | nil

指定された自身の部分配列を返します。Array#[] と同じです。

slice!(nth) -> object | nil

指定した要素を自身から取り除き、取り除いた要素を返します。取り除く要素がなければ nil を返します。

slice!(start, len) -> Array | nil
slice!(range) -> Array | nil

指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil を返します。

sort -> Array
sort! -> self
sort {|a, b| ... } -> Array
sort! {|a, b| ... } -> self

配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。

to_a -> Array

self を返します。ただし、Array のサブクラスのインスタンスに対して呼ばれた時は、 自身を Array に変換したものを返します。

to_ary -> self

self をそのまま返します。

to_s -> String

Array#join($,) と同じです。

transpose -> Array

自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま す。転置した配列を生成して返します。空の配列に対しては空の配列を生 成して返します。

uniq -> Array
uniq! -> self | nil

uniq は配列から重複した要素を取り除いた新しい配列を返します。 取り除かれた要素の部分は前に詰められます。uniq! は削除を破壊 的に行い、削除が行われた場合は self を、そうでなければ nil を返します。

unshift(*obj) -> self

指定された obj を順番に配列の先頭に挿入します。 引数を指定しなければ何もしません。

values_at(*index) -> Array | nil

引数で指定されたインデックスに対応する要素を配列で返します。インデッ クスに対応する値がなければ nil が要素になります。

zip(*lists) -> [[object]]
zip(*lists) {|v1, v2, ...| ...} -> nil

自身と引数に渡した配列の各要素からなる配列の配列を生成して返します。 生成される配列の要素数は self の要素数と同じです。

self | other -> Array

集合の和演算です。両方の配列にいずれかに含まれる要素を全て含む新し い配列を返します。重複する要素は取り除かれます。

継承したメソッド

all? any? collect count detect drop drop_while each_cons each_slice each_with_index entries find_all find_index grep group_by include? inject max max_by min min_by minmax minmax_by none? one? partition reject sort_by take take_while to_set === =~ __id__ __send__ _dump class display enum_for equal? extend freeze frozen? initialize initialize_copy instance_eval instance_exec instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? marshal_dump marshal_load method method_missing methods nil? pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods public_methods remove_instance_variable respond_to? singleton_method_added singleton_method_removed singleton_method_undefined singleton_methods taint tainted? tap to_hash to_int to_io to_proc to_regexp to_str to_yaml to_yaml_properties to_yaml_style untaint

追加されるメソッド

定義 説明 ライブラリ
abbrev(pattern = nil) -> Hash

self が文字列の配列の場合、self から一意に決まる短縮形を計算し、 短縮形をキー、元の文字列を値とするハッシュを返します。

abbrev
dclone rexml
shelljoin -> String

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。

shellwords
to_ptr -> nil | DL::PtrData
to_ptr(type) -> nil | DL::PtrData

自身の各要素を指すポインタの配列を生成し、それへのポインタ DL::PtrData を返します。 この返り値には、DL::FREE が free 関数としてセットされています。 自身の長さが 0 なら nil を返します。

dl