Класс ListQueue< E>
Queue на основе списка.
Хранит элементы в циклическом буфере и увеличивает размер буфера, когда он заполняется. Это гарантирует постоянное время выполнения операций просмотра и удаления, а также амортизированное постоянное время выполнения операций добавления.
Эта структура эффективна при использовании в качестве очереди или стека.
Пример:
final queue = ListQueue<int>();
Чтобы добавлять объекты в очередь, используйте add, addAll, addFirst или addLast.
queue.add(5);
queue.addFirst(0);
queue.addLast(10);
queue.addAll([1, 2, 3]);
print(queue); // {0, 5, 10, 1, 2, 3} Чтобы проверить, пуста ли очередь, используйте isEmpty или isNotEmpty. Чтобы узнать количество элементов в очереди, используйте length.
final isEmpty = queue.isEmpty; // false final queueSize = queue.length; // 6
Чтобы получить первый или последний элемент очереди, используйте first или last.
final first = queue.first; // 0 final last = queue.last; // 3
Чтобы получить значение элемента по индексу, используйте elementAt.
final itemAt = queue.elementAt(2); // 10
Чтобы преобразовать очередь в список, вызовите toList.
final numbers = queue.toList(); print(numbers); // [0, 5, 10, 1, 2, 3]
Чтобы удалить элемент из очереди, вызовите remove, removeFirst или removeLast.
queue.remove(10);
queue.removeFirst();
queue.removeLast();
print(queue); // {5, 1, 2} Чтобы одновременно удалить несколько элементов, используйте removeWhere.
queue.removeWhere((element) => element == 1);
print(queue); // {5, 2} Чтобы удалить из очереди все элементы, не удовлетворяющие условию, используйте retainWhere.
queue.retainWhere((element) => element < 4);
print(queue); // {2} Чтобы удалить все элементы и очистить очередь, используйте clear.
queue.clear();
print(queue.isEmpty); // true
print(queue); // {} - Наследование
- Реализуемые типы
-
-
Queue<
E>
-
Queue<
- Доступные расширения
Конструкторы
- ListQueue([int? initialCapacity])
- Создает пустую очередь.
- ListQueue.from(Iterable elements) фабричный
- Создает
ListQueue, содержащую всеelements. - ListQueue.of(Iterable<
E> elements) фабричный - Создает
ListQueueизelements.
Свойства
- first → E только для чтения
- Возвращает первый элемент.
- hashCode → int только для чтения, наследуется
- Хеш-код этого объекта.
- isEmpty → bool только для чтения
- Содержит ли эта коллекция элементы.
- isNotEmpty → bool только для чтения, наследуется
- Содержит ли эта коллекция хотя бы один элемент.
- iterator → Iterator<
E> только для чтения - Возвращает новый
Iterator, позволяющий перебирать элементы этогоIterable. - last → E только для чтения
- Возвращает последний элемент.
- length → int только для чтения
- Возвращает количество элементов в итерируемой коллекции.
- runtimeType → Type только для чтения, наследуется
- Представление типа объекта во время выполнения.
- single → E только для чтения
- Проверяет, что эта итерируемая коллекция содержит только один элемент, и возвращает его.
Методы
- add(
E value) → void переопределение - Добавляет
valueв конец очереди. - addAll(
Iterable< E> elements) → void переопределение - Добавляет все элементы из
iterableв конец очереди. Длина очереди увеличивается на длинуiterable. - addFirst(
E value) → void переопределение - Добавляет
valueв начало очереди. - addLast(
E value) → void переопределение - Добавляет
valueв конец очереди. - any(
bool test(E element)) → bool наследуется - Проверяет, удовлетворяет ли какой-либо элемент этой итерируемой коллекции условию
test. - cast<
R>( ) → Queue< R> переопределение - Предоставляет представление этой итерируемой коллекции как итерируемой коллекции экземпляров
R. - clear(
) → void переопределение - Удаляет все элементы очереди. Размер очереди становится равным нулю.
- contains(
Object? element) → bool наследуется - Содержит ли коллекция элемент, равный
element. - elementAt(
int index) → E - Возвращает элемент под номером
index. - every(
bool test(E element)) → bool наследуется - Проверяет, удовлетворяет ли каждый элемент этой итерируемой коллекции условию
test. - expand<
T>( Iterable< T> toElements(E element)) → Iterable< T> наследуется - Преобразует каждый элемент этого Iterable в ноль или более элементов.
- firstWhere(
bool test(E element), {E orElse()?}) → E наследуется - Возвращает первый элемент, удовлетворяющий заданному предикату
test. - fold<
T>( T initialValue, T combine(T previousValue, E element)) → T наследуется - Сводит коллекцию к одному значению, последовательно объединяя каждый ее элемент с текущим значением
- followedBy(
Iterable< E> other) → Iterable< E> наследуется - Возвращает ленивую конкатенацию этой итерируемой коллекции и
other. - forEach(
void f(E element)) → void - Вызывает
actionдля каждого элемента этой итерируемой коллекции в порядке перебора. - join(
[String separator = ""]) → String наследуется - Преобразует каждый элемент в String и объединяет полученные строки.
- lastWhere(
bool test(E element), {E orElse()?}) → E наследуется - Возвращает последний элемент, удовлетворяющий заданному предикату
test. - map<
T>( T toElement(E element)) → Iterable< T> наследуется - Текущие элементы этой итерируемой коллекции, преобразованные с помощью
toElement. - noSuchMethod(
Invocation invocation) → dynamic наследуется - Вызывается при обращении к несуществующему методу или свойству.
- reduce(
E combine(E value, E element)) → E наследуется - Сводит коллекцию к одному значению, последовательно объединяя ее элементы с помощью переданной функции.
- remove(
Object? value) → bool переопределение - Удаляет один экземпляр
valueиз очереди. - removeFirst(
) → E переопределение - Удаляет и возвращает первый элемент этой очереди.
- removeLast(
) → E переопределение - Удаляет и возвращает последний элемент очереди.
- removeWhere(
bool test(E element)) → void переопределение - Удаляет все элементы, соответствующие
test. - retainWhere(
bool test(E element)) → void переопределение - Удаляет все элементы, не соответствующие
test. - singleWhere(
bool test(E element), {E orElse()?}) → E наследуется - Возвращает единственный элемент, удовлетворяющий условию
test. - skip(
int count) → Iterable< E> наследуется - Возвращает Iterable, содержащий все элементы, кроме первых
count. - skipWhile(
bool test(E element)) → Iterable< E> наследуется - Возвращает
Iterable, пропуская начальные элементы, пока выполняется условиеtest. - take(
int count) → Iterable< E> наследуется - Возвращает ленивую итерируемую коллекцию из первых
countэлементов этой коллекции. - takeWhile(
bool test(E element)) → Iterable< E> наследуется - Возвращает ленивую итерируемую коллекцию из начальных элементов, удовлетворяющих условию
test. - toList(
{bool growable = true}) → List< E> - Создает List, содержащий элементы этого Iterable.
- toSet(
) → Set< E> наследуется - Создает Set, содержащий те же элементы, что и эта итерируемая коллекция.
- toString(
) → String переопределение - Возвращает строковое представление некоторых элементов
this. - where(
bool test(E element)) → Iterable< E> наследуется - Возвращает новую ленивую Iterable со всеми элементами, удовлетворяющими предикату
test. - whereType<
T>( ) → Iterable< T> наследуется - Возвращает новую ленивую Iterable со всеми элементами типа
T.
Операторы
- operator ==(
Object other) → bool наследуется - Оператор равенства.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-collection/ListQueue-class.html