繁体   English   中英

Collections.sort(list) 和 list.sort(Comparator) 的区别

[英]Difference between Collections.sort(list) and list.sort(Comparator)

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

令人惊讶的是,几乎每个人都告诉我使用Collections.sort 为什么?

List.sort(comparator)方法是在 Java 8 中引入的,而实用方法Collections.sort从 Java 1.2 开始就已经存在了。

因此,您会在 Internet 上找到很多提到该实用程序方法的参考资料,但这只是因为它在 JDK 中存在的时间更长。

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

这只是对 API 的更改。 对于像 Java 这样被广泛采用的语言,通常会在一段时间内发生这种情况,旧方法更可取,以保持对遗留的支持。

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

然后,最终,新 API 接管,不再需要和删除旧 API。 在像 Java 这样被广泛采用的语言中,这可能需要数年或数十年的时间。 开发人员可以制定删除 API 的计划,但社区被迫将其保留。

简单的答案是Collections.sort委托给List.sort 由于一个调用委托给另一个有等效的。 但是,最好使用List.sort来简单地避免额外的方法调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM