我正在阅读 Kathy sierra 的 OCP8 指南,发现一行内容如下:
“ArrayDeque 就像一个性能更好的 ArrayList”
现在我对在哪里使用ArrayList
和在哪里使用感到困惑ArrayDeque
。我也知道 ArrayDeque 的大小总是调整为 2 的幂。调整大小时,容量会翻倍,因此在某些情况下这可能会影响性能。但我想知道两者之间哪个更可取。非常感谢您的帮助。
我正在阅读 Kathy sierra 的 OCP8 指南,发现一行内容如下:
“ArrayDeque 就像一个性能更好的 ArrayList”
现在我对在哪里使用ArrayList
和在哪里使用感到困惑ArrayDeque
。我也知道 ArrayDeque 的大小总是调整为 2 的幂。调整大小时,容量会翻倍,因此在某些情况下这可能会影响性能。但我想知道两者之间哪个更可取。非常感谢您的帮助。
我建议在以下情况下使用 ArrayList 而不是 ArrayDeque
两个集合中的插入和删除。
数组列表:
最坏情况 O(n) 因为您必须移动元素。最后的插入/删除更快,因为要移动的元素更少。如果在 Arraylist 已满时插入,则必须将元素复制到一个新的更大的数组中,即 O(n)。
数组队列:
现在答案在你的问题中。它完全取决于您的要求。分析后您可以轻松预测。
更多请看一下