Collection.sort(list)和list.sort()之间的区别

有什么理由我更喜欢Collection.sort(list)方法而不是简单地调用list.sort() ? 内部Collection.sort只是调用List类的sort方法。

几乎所有人都告诉我使用Collection.sort ,这简直令人惊讶。 为什么?

List.sort(comparator)的方法List.sort(comparator)是在Java 8中引入的,而实用程序方法Collections.sort自Java 1.2以来就已存在。

因此,你会在互联网上找到很多提及该实用方法的参考,但这只是因为它已经在JDK中存在了很长时间。

请注意, Collections.sort实现更改是在8u20中进行的 。

这只是对API的更改。 对于像Java这样广泛采用的语言,通常会发生一段时间,较旧的方法更可取,以保持传统支持。

在这段时间之后,旧的API将被弃用(或者可能不会,两者都可以无限期地保留)。 在这段时间内,可能会对新API进行改进,导致其function与原始实现略有不同,从而鼓励开发人员采用它。 新API的要求/结果可能略有不同,实施可能会发生巨大变化。

然后,最终,新的API接管,并且不再需要和删除旧的API。 在采用Java的广泛采用的语言中,这可能需要数年甚至数十年。 开发人员可以制定一个移除API的计划,但必须由社区将其保留。