ArrayList
順序付きリストを扱う不変のコレクションです。
名前空間
php
WizDevelop\PhpValueObject\Collection\ArrayList実装インターフェース
ICollectionArrayAccessCountableIteratorAggregateJsonSerializable
ジェネリック型
php
ArrayList<TValue>ファクトリメソッド
from
php
public static function from(TValue ...$items): static可変長引数からリストを作成します。
php
$list = ArrayList::from(1, 2, 3, 4, 5);make
php
public static function make(iterable $items): staticイテラブルからリストを作成します。
php
$list = ArrayList::make([1, 2, 3, 4, 5]);empty
php
public static function empty(): static空のリストを作成します。
tryFrom
php
public static function tryFrom(mixed ...$items): Result<static, ValueObjectError>検証付きでリストを作成します。
tryFromResults
php
public static function tryFromResults(array $results): Result<static, ValueObjectError>Result の配列からリストを作成します。すべて成功の場合のみリストを返します。
php
$results = [
EmailAddress::tryFrom('a@example.com'),
EmailAddress::tryFrom('b@example.com'),
];
$listResult = ArrayList::tryFromResults($results);要素へのアクセス
配列アクセス
php
$list = ArrayList::from(1, 2, 3);
$list[0]; // 1
isset($list[0]); // truefirst
php
public function first(?callable $predicate = null): Option<TValue>最初の要素を取得します。条件を指定可能です。
php
$list->first(); // Some(1)
$list->first(fn($v) => $v > 2); // Some(3)last
php
public function last(?callable $predicate = null): Option<TValue>最後の要素を取得します。
sole
php
public function sole(?callable $predicate = null): TValue条件に一致する唯一の要素を取得します。複数ある場合は例外。
変換操作
すべての操作は新しいインスタンスを返します。
map
php
public function map(callable $callback): static各要素を変換します。
php
$doubled = $list->map(fn($v) => $v * 2);mapStrict
php
public function mapStrict(callable $callback): static型を厳格にチェックしながら変換します。
flatMap
php
public function flatMap(callable $callback): static各要素を変換して平坦化します。
flatten
php
public function flatten(): staticネストされた配列を平坦化します。
filter
php
public function filter(callable $predicate): static条件に合う要素を抽出します。
php
$even = $list->filter(fn($v) => $v % 2 === 0);filterAs
php
public function filterAs(string $className): static指定したクラスのインスタンスのみを抽出します。
reject
php
public function reject(callable $predicate): static条件に合わない要素を抽出します。
values
php
public function values(): staticキーを 0 から連番に振り直します。
追加・結合
push / add
php
public function push(TValue $item): static
public function add(TValue $item): static末尾に要素を追加します。
concat
php
public function concat(self $other): static別のリストを結合します。
merge
php
public function merge(self $other): static別のリストをマージします。
ソート・逆順
sort
php
public function sort(callable $comparator): staticソートします。
php
$sorted = $list->sort(fn($a, $b) => $a <=> $b);reverse
php
public function reverse(): static逆順にします。
unique
php
public function unique(?callable $callback = null): static重複を除去します。
集約
reduce
php
public function reduce(callable $callback, mixed $initial): mixed畳み込み演算します。
php
$sum = $list->reduce(fn($carry, $v) => $carry + $v, 0);every
php
public function every(callable $predicate): boolすべての要素が条件を満たすか判定します。
contains
php
public function contains(mixed $value): bool要素が含まれるか判定します。
グループ化
mapToDictionary
php
public function mapToDictionary(callable $callback): array辞書形式に変換します。
mapToGroups
php
public function mapToGroups(callable $callback): Mapグループ化して Map として返します。
その他
slice
php
public function slice(int $offset, ?int $length = null): static一部を切り出します。
isEmpty
php
public function isEmpty(): bool空かどうか判定します。
toArray
php
public function toArray(): array配列に変換します。
count
php
public function count(): int要素数を取得します。