为什么Java没有在javadoc中包含每个函数的时间/空间复杂性?

嗨,我想知道String类的“replaceAll”函数的时间复杂度是多少,但我找不到任何有关它的信息。(http://docs.oracle.com/javase/6/docs/api/java/lang/String.html)

对于Java来说,将复杂性包含在Javadoc中不是更好吗?我相信对于某人来说,了解这是一件非常重要的事情。


答案 1

大多数函数具有相当直接的时间复杂性。AFAIK, replaceAll is O(n)

恕我直言。没有什么比自己在经验上测试(例如使用分析器)更好的了,因为您使用的99%的方法很可能对应用程序的性能几乎没有影响。


答案 2

如果得到保证,可以记录复杂性。例如,某些集合类记录了复杂性保证。例如,来自 HashMap

此实现为基本操作(获取和放置)提供恒定时间性能...

但是,有时复杂性是:

  • 不保证,并且可以通过修改实现来自由更改。
  • 显然是O(1)。