Name

list — 線形リストをあらわすクラス

Description

要素(任意クラスのオブジェクト)の線形リストからなるコンテナである. 要素には,オブジェクトの実体ではなく, オブジェクトへの参照が保持される(Section 2.10, “メモリ管理とオブジェクトの寿命”参照).

Operator

+(加算演算子)

list operator+( list arg1 , list arg2 );

二つのリストを結合したリストを新たに作成して返す.

Method

at

any at( integer arg );

リストの先頭を0番目として,arg番目の要素を返す. インデックスが負あるいは要素サイズ以上の場合は例外が発生する.

[Note] Note

配列要素への参照記法と同じであり, そちらを使用したほうが簡略である. ただ,このメソッドはO(n)の計算量を要する あまり効率のよくない操作であることに注意.

forEach

void forEach( block arg );

リストの全要素に対して,要素を引数として 無名の関数オブジェクトargを呼び出す. 関数オブジェクトは1つの引数をとる関数でなければならない.

関数オブジェクトargboolean型のfalseを返した場合, リストの反復が中止される(break文と同効果). それ以外の場合は無視され反復が継続される.

基本的にはforeach文と 同等の操作を行えるが, 関数ブロック内では(あくまでも関数なので) break文continue文による 実行の流れの制御はできない点に注意(代わりに関数の返す値で制御すればよい).

join

string join( string arg );

全要素をargで連結した文字列を返す. Perlのjoinと類似しているが, 要素がstringオブジェクト以外の場合は 例外が発生する.

pop

any pop();

リストの最後の要素を取り除いて返す.

push

integer push( any arg );

リストの最後に要素としてargを付加する.

set

any set( integer arg1 , any arg2 );

リストの arg1番目の要素として 新たにarg2を設定する. インデックスはリストの先頭を0とする. インデックスが負あるいは要素サイズ以上の場合は例外が発生する.

[Note] Note

配列要素への参照記法と同じであり, そちらを使用したほうが簡略である. ただ,このメソッドはO(n)の計算量を要する あまり効率のよくない操作であることに注意.

shift

any shift();

リストの先頭の要素を取り除いて返す.

size

integer size();

リストに含まれる要素の数を返す.

unshift

integer unshift( any arg );

argを新たな要素としてリストの先頭に付加する.

Class method

list

list list();

コンストラクター.要素を持たない空のリストを作成して返す.

[Note] Note

指定した要素を含むリストを作成したい場合は, リスト定義リテラルの記法を用いる.