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的计划,但必须由社区将其保留。