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

#はじめに
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     |各要素をブロックに持って繰り返しループ|

とても疲れました...