我在做一个顶部排队。我使用数组还是数组列表?如果我正在制作一个固定大小的队列,是阵列还是阵列列表?
1
A
回答
1
我不知道你所说的“上下”队列的意思,而且也不谷歌,但在一般的数组是不是一个队列一个不错的选择。在队列中,您插入前面并从后面移除(FIFO)。在一个数组中,插入到数组的前面需要将现有数组中的所有元素复制到正确的数组中,这需要O(n)个时间。如果你在队列中只有一些物品,那不是什么问题,但是如果你有很多物品,那显然是很浪费的。
头和尾指针双向链表会更好,但你应该只使用一个Queue代替。
0
取决于你如何去填充它:
如果你要填满它以随机顺序,你可能是一个数组更好,否则我会从ArrayList中或列表去避免所有的“REDIM” S。
1
如果你上面所说的它是固定的,即它总是将有多达10分的东西,我会使用一个数组,因为数组是固定的,他们更容易操作。 ArrayList可以增长,但是它的API比数组小很多。
1
我会用ArrayList
,因为它有效地与一个更好的API的数组。使用带有initialCapacity
参数的构造函数,使其先行分配适量内存,并且不要调用任何会导致其自身大小调整的方法。
0
您可以使用LinkedBlockingQueue或ArrayBlockingQueue,它可以是有界的(固定大小)。数组可能是一个解决方案,但您需要重新实现队列逻辑。列表不受限制,因此除非添加一些代码,否则没有任何东西阻止您将它们变得比预期的更大。队列为你做了这一切。
0
我不会使用数组或ArrayList
。我会用LinkedList
。你需要在后面插入并从前面移除,这些操作在数组上是O(n),而在链表上则是O(1)。
相关问题
- 1. 固定大小阵列
- 2. 固定大小的阵列不固定
- 3. 从另一个阵列制作阵列
- 4. 阵列具有固定间隔大小
- 5. 引用阵列到阵列的容量大小而不是实际的阵列
- 6. 阵列阵列是否正确?
- 7. 固定大小的FIFO队列的正确术语是什么?
- 8. 检查阵列的列表的大小
- 9. 检索值,如果值是一个列表/阵列
- 10. mysql更新表列如果一个固定列是重复的
- 11. C#列表,它是阵列
- 12. WorksheetFunction阵列大小限制
- 13. 环形阵列支持的队列调整大小/排队
- 14. 检查另一个阵列列表中的阵列列表
- 15. 如何制作阵列阵列?
- 16. Postgres的追加或设定的每个元件(如果不是存在)的阵列的一个阵列列
- 17. 如何检查是否$阵列=阵列(1){[“”] => NULL}是真的还是假
- 18. 创建新的2D阵列2D阵列的=大小1个+大小2D阵列2(行和列)
- 19. 阵列与每个阵列索引表是唯一
- 20. 如何将更大的阵列缩小为更小的阵列?
- 21. 如何检查较小阵列中的值是否在较大阵列中?
- 22. 调整大小的圆形阵列,在双端队列实施
- 23. 阵列Java的队列
- 24. Underscore.js,测试整个阵列是否在另一个阵列中
- 25. 比较两个阵列,其是在另一个阵列
- 26. 在不改变目标阵列大小的情况下将小阵列复制到较大阵列中
- 27. 指向在恒定大小2D阵列1D阵列
- 28. 二是从两列MySQL表列阵列
- 29. 如果一些阵列是空的
- 30. 根据大阵列中另一个阵列的值对大阵列排序
为什么不直接使用[ArrayDeque(http://docs.oracle.com/javase/6/docs/api/java/util/ArrayDeque.html)? – 2012-03-29 23:13:32
如果它是一个队列,为什么不使用队列?! – assylias 2012-03-29 23:15:31
@TedHopp,ArrayDeque调整自己以保存任意数量的元素。这个问题是关于一个固定大小的队列。虽然ArrayDeque周围的包装器强制执行大小限制,但这可能是值得的。 – Wyzard 2012-03-29 23:19:30