配列(リスト)の最後に要素を追加するには (push)

配列(リスト)の最後に要素を追加する方法。

Java

配列

配列は長さが固定なので、長さが変わるような操作をする手段はない。

java.util.List

Signature:

PHP

// 最後に追加
$arr[] = $obj;
// または
array_push($arr, $obj);

どちらの方法も配列自身を変更する破壊的な方法である。

1つ目の方法はすでにある配列に対してだけでなく、まだ一度も現れていない未定義の変数に対してもいきなり使うことができて、要素が1つだけの配列になる。個人的には気持ち悪い仕様だ。さすがに配列以外の値がすでに代入されている変数に対して行うと、PHPのWarningが発生する。

array_push 関数 | PHP Manual
http://php.net/manual/ja/function.array-push.php

複数の要素を配列で指定してまとめて追加するには array_merge関数を使う。-> 配列を連結するには

Python

# 最後に追加
lst.append(obj)

リスト自身を変更する破壊的なメソッドである。

複数の要素をリストで指定して最後にまとめて追加するには extend が使える。これも破壊的なメソッドである。

lst.extend(lst2)

リストと違ってタプルはイミュータブルなので、これに相当するメソッドはない。

Ruby / JRuby

# 最後に追加
arr.push(obj1)

配列自身を変更する破壊的なメソッドである。

配列自身を返す。

以下のように複数の要素を追加することもできる。

arr.push(obj1, obj2, obj3)

Array#<< を使うこともできる。これも配列自身を変更する破壊的な方法。このメソッドは引数1つしか使えないが、配列自身を返すので、連続して書くことができる。

arr << obj1 << obj2 << obj3

配列同士を連結させるには、Array#concat メソッドも使える。

arr1.concat(arr2)

これは破壊的メソッドである。これに対応する非破壊的メソッドは Array#+

arr1 + arr2

Perl

# 最後に追加
push(@arr, $obj);

配列自身を変更する破壊的な関数である。

2つ目の引数に配列を渡すことができ、その場合はその配列の要素をすべて追加する。

push(@arr1, @arr2);

JavaScript

# 最後に追加
arr.push(obj);

push は複数の引数を渡すこともできる。

var arr1 = [1, 2, 3];
arr1.push(4, 5, 6);
console.log(arr1); // => [1, 2, 3, 4, 5, 6]

配列を連結して新しい配列を生成するには以下のようにする。

var arr1 = [1, 2, 3];
var arr2 = [1, 2, 3];
var new_arr = arr1.concat(arr2)

concat は非破壊的なメソッドなので、arr1arr2 自身は変更されない。

関連

  に追加 を取得して削除
先頭 unshift shift
最後 push pop
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク