Клас 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— Створює новий набір із значень, які є в одному з наборів, але не в обох одночасно