Dart核心API有两个实现
Queue<E>
接口的类,DoubleLinkedQueue<E>
和ListQueue<E>
。
这两个类的文档几乎相同,唯一明确提到的区别是ListQueue<E>
文档中的以下注释:
removeAll
和removeWhere
等操作非常低效。如果需要这些操作,请改用DoubleLinkedQueue
。
从实现上讲,它们之间的实际区别是什么?应该使用哪种实现?
Queue
不应该有removeWhere
或removeAll
方法;这不是队列的一部分。我认为这是一个糟糕的设计。当然,这并没有回答你关于它们之间区别的问题,这就是为什么这只是一条评论而不是答案。 - Levi MorrisonLinkedList
类也相当奇怪。它要求列出的元素扩展某个类。并不是真正的通用实现。我也看不出Queue
和LinkedList
之间有什么区别。 - Steven Roose