我是否有理由更喜欢2.1.2-perf :014 > user = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
2.1.2-perf :016 > user[1] == "solo" ? "#{user[2]} #{user[3]} (s)" : "#{user[4]} (g)"
=> "5 (g)"
方法而不是简单地调用Collection.sort(list)
?内部list.sort()
仅调用Collection.sort
类的sort
方法。
几乎每个人都告诉我使用List
,这简直令人惊讶。为什么呢?
答案 0 :(得分:29)
您引用的方法List.sort(comparator)
是在Java 8中引入的,而实用方法Collections.sort
自Java 1.2以来一直存在。
因此,您会在互联网上找到很多提及该实用方法的参考资料,但这只是因为它已经在JDK中使用了更长时间。
请注意Collections.sort
was made in 8u20的实施更改。
答案 1 :(得分:5)
这只是对API的更改。对于像Java这样广泛采用的语言,通常会发生一段时间,较旧的方法更可取,以维持传统支持。
在这段时间之后,旧的API将被弃用(或者可能不会,两者都可以无限期地保留)。在这段时间内,可能会对新API进行改进,导致其功能与原始实现略有不同,从而鼓励开发人员采用它。新API的要求/结果可能略有不同,实施可能会发生巨大变化。
然后,最终,新的API接管,不再需要和删除旧的API。在与Java一样广泛采用的语言中,这可能需要数年甚至数十年。开发人员可以制定删除API的计划,但必须让社区将其保留下来。
答案 2 :(得分:1)
简单的答案是Collections.sort
委托给List.sort
。由于一个呼叫委托给另一呼叫,所以等效。但是,最好使用List.sort
来避免不必要的方法调用。