java – compareTo是否有某种预启动延迟?

我刚刚发现这句话:“通过首先比较最有可能不同的项目,可以大大提高compareTo的性能”.这是真的吗?如果是,为什么?

解决方法:

考虑一个具有多个属性的类.对于比较实例,您需要比较它们的一些属性.如果除了一个属性之外的所有属性都相等,那么您需要进行的比较量取决于属性比较的顺序:如果您碰巧首先比较不同的属性,则通过一次比较得到结果.但是如果你最后比较不同的属性,你必须进行n次比较才能得到相同的结果.

正如@Kdeveloper所指出的那样,除非您批量进行大量类似的比较,否则性能差异可能并不明显.但另一个好处是IMHO逻辑排序:这使您可以考虑类属性之间的逻辑关系.总的来说,由于这是一种无中断优化(即它不会使代码更难以阅读和维护),我认为大多数时候都值得这样做.

上一篇:第一次OO总结


下一篇:聊聊 Java String 源码的排序算法