Java数据结构参考

任何人都可以给我一个网站的引用,其中包含主要Java数据结构的摘要,以及它们各自的复杂性(对于某些给定的操作,如添加,查找,删除),例如Hashtable是O(1)用于查找,而LinkedList是O(n)。 像内存使用这样的一些细节也会很好。

这对于在算法的数据结构中进行思考非常有用。

是否有理由认为Java的实现(在复杂性方面)与通用的,语言无关的实现不同? 换句话说,为什么不仅仅参考关于各种数据结构的复杂性的一般参考:

NIST算法和数据结构词典

但是,如果你坚持特定于Java:

Java标准数据结构Big O表示法

Java Collections cheatsheet V2 (死链接,但这是cheatsheet的第一个版本 )

最全面的Java Collections概述就在这里

http://en.wikiversity.org/wiki/Java_Collections_Overview

我发现了非常有用的集合框架页面,特别是集合框架的大纲 ,其中每个接口/类都被轻描淡写地描述。 不幸的是,没有大O信息。

我看不到这里提到的这个特殊资源,我发现它在过去很有用。 知道你的复杂性!

http://bigocheatsheet.com/

主要集合类的时间和空间复杂性应该对应于已知时间复杂度的数据结构。 我认为Java没有任何特定的东西,例如(如你所说)哈希查找应该是O(1)。 你可以看这里或这里 。

我不相信有任何一个网站概述这个(虽然听起来像一个项目的好主意)。 我认为问题的一部分是对每种算法运行方式的理解非常重要。 在大多数情况下,听起来你理解Big-O,所以我会用它作为你最好的猜测。 通过一些基准测试/分析来跟踪它,看看哪些运行更快/更慢。

而且,是的, Java文档应该在java.util包含大量此类信息。