====== プログラミング言語チートシート ======
===== 固定長配列 =====
^ ^Ruby ^JavaScript ^Java^
|型 |可変長と同じ|可変長と同じ|//type//[]|
|依存性 |::: |::: |なし(組み込み型)|
|生成 |::: |::: |new //type//[//size//]|
|初期化 |::: |::: |type[] array = {values, ...}|
|一括代入|::: |::: |(不可)|
|長さ |::: |::: |array.length|
|参照 |::: |::: |array[index]|
|代入 |::: |::: |array[index] = value|
===== 可変長配列 =====
^ ^Ruby ^JavaScript ^CoffeeScript ^Java ^
|マニュアル |[[http://docs.ruby-lang.org/ja/2.1.0/class/Array.html|Ruby 2.1.0]]|[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array|MDN]]|[[http://coffeescript.org/|CoffeeScript]]| |
|型 |Array |Array ||List/type//> |
|依存性 |なし(組み込み型) |なし(組み込み型) ||import java.util.* |
|生成 |Array.new([//size = 0//][, //value// = 0])\\ [//item1//, //item2//, ...]|new Array([//size// = 0])\\ new Array(//item1//, //item2//, ...)\\ [//item1//, //item2//, ...]||new ArrayList/type//>()|
|要素数 |//array//.length\\ //array//.size|//array//.length||//list//.size()|
|要素参照 | //array//[//index//] |||//list//.get(//index//)|
|要素代入 | //array//[//index//] = value |||//list//.set(//index//, //value//)|
|末尾に要素を追加 |//array//.push(//value//)\\ //array// << //value//|//array//.push(//value//)||//list//.add(//value//)|
|先頭に要素を挿入 | //array//.unshift(//value//) |||//list//.add(0, //value//) |
|末尾から要素を削除|//array//.pop |//array//.pop() ||//list//.remove(//list//.size() - 1)|
|先頭から要素を削除|//array//.shift |//array//.shift() ||//list//.remove(0) |
|別の配列と連結 |//array1// + //array2//|//array1//.concat(//array2//)|| |
|すべて削除 |//array//.clear |なし ||//list//.clear() |
|要素を指定して削除|//array//.delete(//value//)\\ (合致する要素全てを削除)|なし\\ (indexOfと「添字を指定して削除」で代用)|| |
|添字を指定して削除|//array//.delete_at(//index//)|//array//.splice(//index//, 1)|| |
|各要素について実行|//array//.each {|//value//| ... }|なし\\ (「各添字について実行」で代用)|for //value// in //array//\\ ...| |
|各添字について実行|//array//.each_index {|//index//| ...}|for (//index// = 0;\\ //index// < //array//.length;\\ ++//index//)\\ { ... }|なし\\ (「各添字と要素について実行」で代用)| |
|各添字と要素について実行|なし\\ (「各添字について実行」で代用)|なし\\ (「各添字について実行」で代用)|for //value//, //index// in //array//\\ ...| |
===== 連想配列 =====
^ ^Ruby ^JavaScript ^CoffeeScript ^
|マニュアル |[[http://docs.ruby-lang.org/ja/2.1.0/class/Hash.html|Ruby 2.1.0]]|[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object|MDN]]|[[http://coffeescript.org/|CoffeeScript]]|
|型 |Hash |Object ||
|依存性 |なし(組み込み型) |なし(組み込み型) ||
|生成 |Hash.new\\ {//key1// => //value1//, //key2// => //value2//, ...}|new Object()\\ {//key1//: //value1//, //key2//: //value2//, ...}||
|要素数 |//hash//.length\\ //hash//.size|Object.keys(//object//).length||
|要素参照 |//hash//[//key//]\\ //hash//.fetch(//key//)|//object//["//key//"]\\ //object//.//key//||
|要素代入 |//hash//[//key//] = //value//\\ //hash//.store(//key//, //value//)|//object//["//key//"] = //value//\\ //object//.//key// = //value//||
|各キーについて実行|//hash//.each_key {|//key//| ... }|for (//key// in //object//) { ... }|for //key// of //object//\\ ...|
|各要素について実行|//hash//.each_value {|//value//| ... }|なし\\ (「各キーについて実行」で代用)|なし\\ (「各キーと要素について実行」で代用)|
|各キーと要素について実行|//hash//.each {|//key//, //value//| ... }\\ //hash//.each_pair {|//key//, //value//| ... }|なし\\ (「各キーについて実行」で代用)|for //key//, //value// of //object//\\ ...|
|キーの配列を取得|//hash//.keys |なし(以下のように一度走査するしかない)\\ var r = [];\\ for (k in //object//) { r.push(k); }|なし(JSよりかは完結に書ける)\\ (k for k, v of //object//)\\ ※演算子の優先順位から、括弧が重要|
===== バイナリデータバッファ(JavaScript固有) =====
^ ^JavaScript ^備考^
|マニュアル|[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer|MDN]]| |
|型 |ArrayBuffer | |
|依存性 |なし(組み込み型) | |
|生成 |new ArrayBuffer(//length//) |//length//はバイト数|
|サイズ |//arraybuffer//.byteLength |バイト数|
|コピー |//arraybuffer//.slice(//begin//[, //end//])|返却するバッファはコピーされた新規バッファ|
===== バイナリデータビュー(JavaScript固有) =====
^ ^JavaScript ^備考^
|型 |TypedArray (Uint8Array/etc.)| |
|マニュアル|[[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray|MDN]]| |
|依存性 |なし(組み込み型) | |
|生成 |new TypedArray(//length//)\\ new TypedArray(//typedarray//)\\ new TypedArray(//arraybuffer//[, //byteoffset//[, //length//]])| |
|参照バッファ|//typedarray//.buffer | |
|サイズ |//typedarray//.byteLength |バイト数|
|::: |//typedarray//.length |要素数 |
|オフセット|//typedarray//.byteOffset |バイト数|
|部分配列取得|//typedarray//.subarray([begin[, end]])|バッファは共有するので注意|
|:::|//typedarray//.slice([begin[, end]])|新規バッファを作ってコピー|