队列(Queue)是一个可以在两端进行操作的集合。可以通过 forEach 或 Iterator 来遍历队列的元素。
通常不允许在正在执行队列操作(例如在调用 forEach 时)修改队列(添加或删除条目)。在迭代过程中修改队列很可能会破坏迭代。这既适用于直接使用 iterator,也适用于迭代由 map 或 where 等方法返回的 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< ) → Iterable<T> toElements(E element)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 - 等于运算符。继承