Queue<E>abstract interface

队列(Queue)是一个可以在两端进行操作的集合。可以通过 forEachIterator 来遍历队列的元素。

通常不允许在正在执行队列操作(例如在调用 forEach 时)修改队列(添加或删除条目)。在迭代过程中修改队列很可能会破坏迭代。这既适用于直接使用 iterator,也适用于迭代由 mapwhere 等方法返回的 Iterable

示例

final queue = Queue<int>(); // ListQueue() by default
print(queue.runtimeType); // ListQueue

// Adding items to queue
queue.addAll([1, 2, 3]);
queue.addFirst(0);
queue.addLast(10);
print(queue); // {0, 1, 2, 3, 10}

// Removing items from queue
queue.removeFirst();
queue.removeLast();
print(queue); // {1, 2, 3}
实现类型
实现者
可用的扩展

构造函数

Queue()
创建一个队列。
factory
Queue.from(Iterable elements)
创建包含所有 elements 的队列。
factory
Queue.of(Iterable<E> elements)
elements 创建一个队列。
factory

属性

first → E
第一个元素。
no setterinherited
hashCode int
此对象的哈希码。
no setterinherited
isEmpty bool
此集合是否没有任何元素。
no setterinherited
isNotEmpty bool
此集合是否至少有一个元素。
no setterinherited
iterator Iterator<E>
一个新的 Iterator,允许迭代此 Iterable 的元素。
no setterinherited
last → E
最后一个元素。
no setterinherited
length int
在此 Queue 中元素的数量。
no setterinherited
runtimeType Type
表示对象运行时类型的表示。
no setterinherited
single → E
检查此可迭代是否有单个元素,并返回该元素。
no setterinherited

方法

add(E value) → void
value 添加到队列末尾。
addAll(Iterable<E> iterable) → 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 实例队列的视图。
overide
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>
将此 可迭代对象 的每个元素扩展为零个或多个元素。
继承
firstWhere(bool test(E element), {E orElse()?}) → E
返回满足给定谓词的第一个元素。
继承
fold<T>(T initialValue, T combine(T previousValue, E element)) → T
通过迭代将集合的每个元素与现有值组合,将集合缩减为单个值。
继承
followedBy(Iterable<E>) Iterable<E>
创建此可迭代对象和 other 的懒连接。
继承
forEach(void action(E element)) → void
按迭代顺序在可迭代对象的每个元素上调用 action
继承
join([String separator = ""]) String
将每个元素转换为 String 并连接这些字符串。
继承
lastWhere(bool test(E element), {E orElse()?}) → E
返回满足给定谓词的最后一个元素。
继承
map<T>(T toElement(E e)) 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 value)) Iterable<E>
test 满足条件时跳过前导元素。
继承
take(int count) Iterable<E>
创建一个延迟可迭代的对象,包含此可迭代的 count 个前元素。
继承
takeWhile(bool test(E value)) Iterable<E>
创建一个延迟可迭代的对象,包含满足 test 的前导元素。
继承
toList({bool growable = true}) List<E>
创建一个包含此 Iteratable 元素的 List.
继承
toSet() Set<E>
创建一个包含与此可迭代相同元素的 Set.
继承
toString() String
此对象的字符串表示。
继承
where(bool test(E element)) Iterable<E>
创建一个新的懒惰 Iteratable,其中包含所有满足谓词 test 的元素。
继承
whereType<T>() Iterable<T>
创建一个新的懒惰 Iteratable,其中包含所有类型为 T 的元素。
继承

运算符

operator ==(Object other) bool
等于运算符。
继承

静态方法

castFrom<S, T>(Queue<S> source) Queue<T>
source 转换为 Queue<T>
overide