LoginSignup
15
14

More than 5 years have passed since last update.

【Ruby】 Arrayのメソッド忘備録

Posted at

はじめに

Array系のメソッド多すぎて忘れてしまうので,忘備録としてまとめました
メソッドの逆引きなどにご利用ください
自分にとって覚えやすい9つのグループに分けてます

  1. 『定義系』
    コンストラクタです

  2. 『プロパティ系』
    その配列に関しての状態が返るメソッドです

  3. 『先頭,末端の操作系』
    配列の先頭や末端の出し入れ関係のメソッドです
    下のグループのそれぞれとかぶってますが,個人的にまとめたい物だったので別にしています

  4. 『要素の抜き出し系』
    配列の中身を変えずに要素を参照するメソッドです

  5. 『要素の並び替え系』
    ソートなど配列に要素を挿入削除せずに並び替えるメソッドです

  6. 『クラスの変換系』
    他のクラスに変換するものです

  7. 『配列変換系』
    配列の要素から様々な形に変換するメソッドです

  8. 『要素書き換え系』
    要素を書き換えるメソッドです

  9. 『ループ系』
    各要素ごとに処理を行いたいときに使うメソッドです

注意

  • 簡潔に書きたいので,使えるversionや細かい説明,破壊的な定義,引数,使用例などは省略しています.気になる方は各自調べてください
  • よく使うものやArrayとの比較のためにEnumerableなどの他クラスメソッドも一部入れてます
  • ここに載せているメソッドだけが全てではありません.特に廃止されたメソッドは入れてません
  • グループ分けも複数のグループに該当する場合がありますが,そこは私ルール(超適当)で分けてます
  • 何か要望がありましたら,コメントや編集リクエストお願いします.記事主が泣いて喜びます

定義系

メソッド 説明
[] コンストラクタ
new コンストラクタ

プロパティ系

メソッド 説明
empty? 配列が空か
eql? キーとして同じか
equal? 同じオブジェクトか
== 配列の値が等しいか
<=> 配列を順序を比較
frozen? 配列が凍結されているか
include? 引数が要素に含まれるか
all? 全て引数の要素か
any? 一部引数の要素か
one? 一つ引数の要素か
none? 引数の要素を含まないか
size 配列全体の要素の数を返す
length 配列全体の要素の数を返す
count 条件を満たす要素の数を返す
hash ハッシュ値を返す

先頭,末端の操作系

メソッド 説明
first 先頭の要素を調べる
unshift 先頭から要素を追加
shift 先頭の要素を削除
last 末端の要素を調べる
push 末端から要素を追加
<< 末端から要素を追加
concat 末端から配列を追加
+ 末端から配列を追加
pop 末端の要素を削除
take 先頭から複数要素を抜き出し
take_while 先頭から条件を満たさなくなるまで要素を取り出す
drop 先頭から複数要素を除いて抜き出し
drop_while 先頭から条件を満たさなくなるまで要素を除いて取り出す

要素の抜き出し系

メソッド 説明
[] 引数の位置の要素を取り出す(個別/範囲)
slice 引数の位置の要素を取り出す(個別/範囲)
at 引数の位置の要素を取り出す(個別のみ)
fetch 引数の位置の要素を取り出す(範囲外でdefault)
values_at 引数の位置の要素を取り出す(複数指定可)
select 条件を満たす要素を取り出す
reject 条件を満たさない要素を取り出す
sample 要素をランダムに返す
assoc キーを元に配列の配列から配列を取り出す
rassoc キーの値を元に配列の配列から配列を取り出す

検索系

メソッド 説明
index 要素の位置を調べる
find_index 要素の位置を調べる
rindex 末尾から要素の位置を調べる

要素の並び替え系

メソッド 説明
sort 配列をソート
sort_by 返り値でソート
reverse 配列の順番を反転
rotate 引数だけ順番を移動
shuffle 要素をシャッフル

クラスの変換系

メソッド 説明
to_a レシーバ自身を返す(サブクラスなら新しく作成)
to_ary レシーバ自身を返す
to_s 文字列に変換
join 要素を結合して文字列に変換
inspect 出力時に読みやすい形式に変換

配列変換系

メソッド 説明
flatten 配列を平坦化
zip 複数の配列の要素の組み合わせを作る
transpose 行と列を入れ替える
pack 配列からバイナリデータに変換
permutation 配列の順列要素の配列を作る
repeated_permutation 配列の順列要素の配列を作る
combination 自身の要素の組み合わせの順列要素の配列を作る
product 複数の配列の要素の組み合わせの配列を作る
repeated_combination 組み合わせの順列要素の配列を作る
* 配列を引数回繰り返した配列を作る

要素書き換え系

メソッド 説明
[]= 指定した要素を置換
map 要素を返り値に変換
clear 配列を空にする
fill 配列を引数で埋める
replace 配列を変更
insert 要素を挿入
delete 要素を削除
delete_at 指定された要素を削除
delete_if 条件に合わない要素を削除
compact nilの要素を削除
uniq 重複する要素を削除
keep_if 条件にあわない要素を削除
& 積集合(両方に含む要素)の配列を作る
- 差集合(右辺の要素を抜いた)の配列を作る
和集合(どちらかに含む要素)の配列を作る

ループ系

メソッド 説明
each 各要素をブロックに持ってループ
each_index 各要素と添字をブロックに持ってループ
each_with_index 各要素と添字をブロックに持ってループ
reverse_each 各要素をブロックに持って逆順でループ
cycle 各要素をブロックに持って繰り返しループ

とても疲れました...

15
14
1

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
  3. You can use dark theme
What you can do with signing up
15
14