Spec-Zone.ru › Dart 2

dart:collection

Класс SplayTreeSet<E>

Множество объектов, которые могут быть упорядочены относительно друг друга.

Множество основано на самобалансирующемся двоичном дереве. Оно позволяет выполнять большинство операций за логарифмическое время в амортизированном смысле.

Элементы множества сравниваются с помощью функции compare, переданной в конструкторе, как для упорядочения, так и для проверки равенства. Если множество содержит только объект a, то set.contains(b) вернёт true, если и только если compare(a, b) == 0, и значение a == b даже не проверяется. Если функция сравнения опущена, предполагается, что объекты являются Comparable и сравниваются с помощью метода Comparable.compareTo. Несравнимые объекты (включая null) в этом случае не будут работать как элементы.

Примечание: Не изменяйте множество (добавляйте или удаляйте элементы) во время выполнения операции на множестве, например, в функциях, вызываемых во время forEach или containsAll, или во время итерации по множеству.

Не изменяйте элементы таким образом, чтобы изменялось их равенство (и, следовательно, их хэш-код) во время их нахождения в множестве. Некоторые специализированные типы множеств могут быть более снисходительными в отношении равенства, в этом случае они должны документировать своё различное поведение и ограничения.

Пример:

final planets = SplayTreeSet<String>((a, b) => a.compareTo(b));

Для добавления данных в множество используйте add или addAll.

planets.add('Neptune');
planets.addAll({'Venus', 'Mars', 'Earth', 'Jupiter'});
print(planets); // {Earth, Jupiter, Mars, Neptune, Venus}

Для проверки того, пусто ли множество, используйте isEmpty или isNotEmpty. Чтобы найти количество элементов в множестве, используйте length.

final isEmpty = planets.isEmpty; // false
final length = planets.length; // 5

Для проверки того, содержит ли множество определённый элемент, используйте contains.

final marsExists = planets.contains('Mars'); // true

Для получения значения элемента по индексу, используйте elementAt.

final elementAt = planets.elementAt(1);
print(elementAt); // Jupiter

Для создания копии множества, используйте toSet.

final copySet = planets.toSet(); // a `SplayTreeSet` with the same ordering.
print(copySet); // {Earth, Jupiter, Mars, Neptune, Venus}

Для удаления элемента используйте remove.

final removedValue = planets.remove('Mars'); // true
print(planets); // {Earth, Jupiter, Neptune, Venus}

Для удаления нескольких элементов одновременно используйте removeWhere.

planets.removeWhere((element) => element.startsWith('J'));
print(planets); // {Earth, Neptune, Venus}

Для удаления всех элементов в этом множестве, которые не удовлетворяют условию, используйте retainWhere.

planets.retainWhere((element) => element.contains('Earth'));
print(planets); // {Earth}

Для удаления всех элементов и очистки множества, используйте clear.

planets.clear();
print(planets.isEmpty); // true
print(planets); // {}

См. также:

  • Set — базовый класс для набора объектов.
  • HashSet — порядок объектов при итерации не гарантируется.
  • LinkedHashSet — объекты хранятся в порядке вставки.
Включенные типы
  • IterableMixin<E>
  • SetMixin<E>
Доступные расширения
  • EnumByName

Конструкторы

SplayTreeSet([int compare(E key1, E key2)?, bool isValidKey(dynamic potentialKey)?])
Создаёт новое множество SplayTreeSet с заданной функцией сравнения.
SplayTreeSet.from(Iterable elements, [int compare(E key1, E key2)?, bool isValidKey(dynamic potentialKey)?])
factory
Создаёт SplayTreeSet, содержащий все elements.
SplayTreeSet.of(Iterable<E> elements, [int compare(E key1, E key2)?, bool isValidKey(dynamic potentialKey)?])
factory
Создаёт SplayTreeSet из elements.

Свойства

first → E
только для чтения, переопределено
Возвращает первый элемент.
hashCode → int
только для чтения, унаследовано
Хэш-код для этого объекта.
isEmpty → bool
только для чтения, переопределено
Является ли эта коллекция пустой.
isNotEmpty → bool
только для чтения, переопределено
Содержит ли эта коллекция хотя бы один элемент.
iterator → Iterator<E>
только для чтения, переопределено
Возвращает новый Iterator, который позволяет итерировать элементы этого Iterable.
last → E
только для чтения, переопределено
Возвращает последний элемент.
length → int
только для чтения, переопределено
Возвращает количество элементов в this.
runtimeType → Type
только для чтения, унаследовано
Представление типа объекта во время выполнения.
single → E
только для чтения, переопределено
Проверяет, что этот итерируемый объект содержит только один элемент, и возвращает этот элемент.

Методы

add(E элемент) → bool
override
Добавляет value в множество.
addAll(Iterable<E> элементы) → void
override
Добавляет все elements в это множество.
any(bool проверка(E элемент)) → bool
inherited
Проверяет, удовлетворяет ли какой-либо элемент этого итерируемого объекта test.
cast<R>() → Set<R>
override
Предоставляет представление этого итерируемого объекта как итерируемого объекта R экземпляров.
clear() → void
override
Удаляет все элементы из множества.
contains(Object? элемент) → bool
override
Является ли коллекция содержит элемент, равный element.
containsAll(Iterable<Object?> другой) → bool
inherited
Содержит ли это множество все элементы other.
difference(Set<Object?> другой) → Set<E>
override
Создаёт новое множество с элементами этого множества, которые отсутствуют в other.
elementAt(int индекс) → E
inherited
Возвращает index-й элемент.
every(bool f(E элемент)) → bool
inherited
Проверяет, удовлетворяет ли каждый элемент этого итерируемого объекта test.
expand<T>(Iterable<T> f(E элемент)) → Iterable<T>
inherited
Расширяет каждый элемент этого Iterable до нуля или более элементов.
firstWhere(bool проверка(E значение), {E илиПоУмолчанию()?}) → E
inherited
Возвращает первый элемент, удовлетворяющий заданному предикату test.
fold<T>(T начальноеЗначение, T комбинировать(T предыдущееЗначение, E элемент)) → T
inherited
Сводит коллекцию к одному значению, итеративно комбинируя каждый элемент коллекции с существующим значением
followedBy(Iterable<E> другой) → Iterable<E>
inherited
Возвращает ленивую конкатенацию этого итерируемого объекта и other.
forEach(void f(E элемент)) → void
inherited
Вызывает action для каждого элемента этого итерируемого объекта в порядке итерации.
intersection(Set<Object?> другой) → Set<E>
override
Создаёт новое множество, являющееся пересечением этого множества и other.
join([String разделитель = ""]) → String
inherited
Преобразует каждый элемент в String и конкатенирует строки.
lastWhere(bool проверка(E значение), {E илиПоУмолчанию()?}) → E
inherited
Возвращает последний элемент, удовлетворяющий заданному предикату test.
lookup(Object? объект) → E?
override
Если объект, равный object находится в множестве, вернуть его.
map<T>(T f(E элемент)) → Iterable<T>
inherited
Текущие элементы этого итерируемого объекта, изменённые toElement.
noSuchMethod(Invocation вызов) → dynamic
inherited
Вызывается при обращении к несуществующему методу или свойству.
reduce(E комбинировать(E значение, E элемент)) → E
inherited
Сводит коллекцию к одному значению, итеративно комбинируя элементы коллекции с помощью предоставленной функции.
remove(Object? объект) → bool
override
Удаляет value из множества.
removeAll(Iterable<Object?> элементы) → void
override
Удаляет каждый элемент из elements из этого множества.
removeWhere(bool проверка(E элемент)) → void
inherited
Удаляет все элементы этого множества, которые удовлетворяют test.
retainAll(Iterable<Object?> элементы) → void
override
Удаляет все элементы этого множества, которые не являются элементами elements.
retainWhere(bool проверка(E элемент)) → void
inherited
Удаляет все элементы этого множества, которые не удовлетворяют test.
singleWhere(bool проверка(E значение), {E илиПоУмолчанию()?}) → E
inherited
Возвращает единственный элемент, который удовлетворяет test.
skip(int n) → Iterable<E>
inherited
Возвращает Iterable, который предоставляет все элементы, кроме первых count элементов.
skipWhile(bool проверка(E значение)) → Iterable<E>
inherited
Возвращает Iterable, который пропускает ведущие элементы, пока test выполняется.
take(int n) → Iterable<E>
inherited
Возвращает ленивый итерируемый объект первых count элементов этого итерируемого объекта.
takeWhile(bool проверка(E значение)) → Iterable<E>
inherited
Возвращает ленивый итерируемый объект ведущих элементов, удовлетворяющих test.
toList({bool изменяемый = true}) → List<E>
inherited
Создаёт List, содержащий элементы этого Iterable.
toSet() → Set<E>
override
Создаёт Set, содержащий те же элементы, что и этот итерируемый объект.
toString() → String
override
Строковое представление этого объекта.
union(Set<E> другой) → Set<E>
override
Создаёт новое множество, содержащее все элементы этого множества и other.
where(bool f(E элемент)) → Iterable<E>
inherited
Возвращает новый ленивый Iterable со всеми элементами, удовлетворяющими предикату test.
whereType<T>() → Iterable<T>
inherited
Возвращает новый ленивый Iterable со всеми элементами типа T.

Операторы

operator ==(Object other) → bool
inherited
Оператор равенства.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-collection/SplayTreeSet-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API