La clase Set

(PECL ds >= 1.0.0)

Introducción

Un Set es una secuencia de valores únicos. Esta implementación utiliza la misma tabla de hash que Ds\Map, donde los valores se utilizan como claves y el valor mapeado se ignora.

Fortalezas

  • Los valores pueden ser de cualquier tipo, incluyendo objetos.
  • Soporte de la sintaxis de array (corchetes).
  • El orden de inserción se preserva.
  • Libera automáticamente la memoria asignada cuando su tamaño se vuelve suficientemente pequeño.
  • add(), remove() y contains() son todos de complejidad O(1).

Debilidades

  • No soporta: push(), pop(), insert(), shift(), o unshift().
  • get() es de complejidad O(n) si hay valores eliminados en el búfer antes del índice accedido, O(1) en caso contrario.

Sinopsis de la Clase

class Ds\Set implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 16;
/* Métodos */
public add(mixed ...$values): void
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Set
public diff(Ds\Set $set): Ds\Set
public filter(callable $callback = ?): Ds\Set
public first(): mixed
public get(int $index): mixed
public intersect(Ds\Set $set): Ds\Set
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Set
public merge(mixed $values): Ds\Set
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed ...$values): void
public reverse(): void
public reversed(): Ds\Set
public slice(int $index, int $length = ?): Ds\Set
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Set
public sum(): int|float
public toArray(): array
public union(Ds\Set $set): Ds\Set
public xor(Ds\Set $set): Ds\Set
}

Constantes predefinidas

Ds\Set::MIN_CAPACITY

Historial de cambios

Versión Descripción
PECL ds 1.3.0 Esta clase implementa ahora ArrayAccess.
PECL ds 1.2.7 Se añadió el método Ds\Set::map().

Tabla de contenidos