Клас Set
(PECL ds >= 1.0.0)
Вступ
Set – це послідовність унікальних значень. Реалізація використовує ту ж хеш-таблицю, що й Ds\Map, В якій значення використовуються як ключі, а зв'язані значення ігноруються.
Сильні сторони
- Значення можуть бути будь-якого типу, включаючи об'єкти.
- Підтримує синтаксис масиву (квадратні дужки).
- Зберігається порядок вставки.
- Автоматично звільняє пам'ять, коли кількість елементів значно зменшується.
- add() **remove()** і **contains()**мають складність O(1).
Слабкі сторони
- Не підтримуєpush() pop() insert() shift() і unshift()
- **get()**має складність O(n), якщо є віддалені значення буфері, до значення, до якого відбувається доступ. Інакше O(1).
Огляд класів
class Ds\Set
implements
Ds\Collection, ArrayAccess {
/* Константы */
const
int
MIN_CAPACITY = 16;
/* Методы */
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 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
}
Обумовлені константи
Ds\Set::MIN_CAPACITY
список змін
Версия | Опис |
---|---|
PECL ds 1.3.0 | Тепер клас реалізує ArrayAccess |
Зміст
- Ds\Set::add— Додає значення до набору
- Ds\Set::allocate— Виділяє пам'ять під зазначену місткість
- Ds\Set::capacity— Повертає поточну місткість
- Ds\Set::clear— Видаляє всі значення з колекції
- Ds\Set::__construct - Створює новий екземпляр класу
- Ds\Set::contains— Перевіряє, чи міститься в колекції задані значення
- Ds\Set::copy— Повертає поверхневу копію колекції
- Ds\Set::count— Повертає кількість елементів колекції
- Ds\Set::diff— Створює новий набір із елементами, яких немає в іншому наборі
- Ds\Set::filter— Створює новий список із елементів, вибраних за допомогою заданої callback-функції
- Ds\Set::first— Повертає перший елемент колекції
- Ds\Set::get— Повертає значення за індексом
- Ds\Set::intersect— Створює новий набір, створений перетином з іншим набором
- Ds\Set::isEmpty— Перевіряє, чи колекція порожня.
- Ds\Set::join - Склеює всі значення в рядок
- Ds\Set::jsonSerialize— Повертає колекцію в JSON-представництві
- Ds\Set::last— Повертає останнє значення колекції
- Ds\Set::merge— Повертає результат додавання всіх заданих значень до набору
- Ds\Set::reduce - Зменшує колекцію до одного значення, використовуючи callback-функцію
- Ds\Set::remove— Видаляє всі задані значення набору
- Ds\Set::reverse— Перевертає поточну колекцію
- Ds\Set::reversed— Повертає перегорнуту копію колекції
- Ds\Set::slice— Повертає піднабір із заданого діапазону
- Ds\Set::sort— Сортує колекцію
- Ds\Set::sorted— Повертає копію колекції, відсортовану за значенням.
- Ds\Set::sum— Повертає суму всіх значень колекції
- Ds\Set::toArray— Перетворює колекцію на масив (array)
- Ds\Set::union— Створює новий набір з елементів поточного та переданого наборів
- Ds\Set::xor— Створює новий набір із значень, які є в одному з наборів, але не в обох одночасно