1

我一直在使用 OpenJDK 1.7 的 Java 文档,但在不同容器类型之间的操作复杂性方面,我没有看到很多关于 Big-Oh 表示法的信息,这使得很难知道哪个是性能最高的集合用于我手头的任务;例如,实现堆栈或队列。

我一直ArrayDeque在按照我的 C++ 直觉使用两者。基础知识在那里,例如ArrayList比 快LinkedList,但似乎没有一致的部分。在 C++ 文档中,有一个类似下面的部分。任何涉及容器之间复杂性的 Javadoc 参考都会有所帮助。

C++ 示例:http ://en.cppreference.com/w/cpp/container/unordered_set/equal_range

复杂

平均情况常数,最坏情况与容器大小呈线性关系。

Java 示例:嵌入在 ArrayList 文档中我发现了以下内容

size、isEmpty、get、set、iterator 和 listIterator 操作在恒定时间内运行。添加操作在摊销常数时间内运行,即添加 n 个元素需要 O(n) 时间。所有其他操作都以线性时间运行(粗略地说)。与 LinkedList 实现相比,常数因子较低。

4

0 回答 0