1. 首页
  2. 编程语言
  3. Java
  4. java中排序报:Comparison method violates its general contract异常的解决

java中排序报:Comparison method violates its general contract异常的解决

上传者: 2022-05-05 14:34:22上传 PDF文件 189.68 KB 热度 8次

上周线上的一段排序的java代码出现了一个这个排序导致的异常将会在java7以上的版本出现,所以如果你的JDK从6升级到了7或者8,那一定要小心此异常。在java7的兼容列表中,就有对此排序不兼容的说明:我从资料中查阅到java7开始引入了Timsort的排序算法。我之前一直以为大部分标准库的内置排序算法都是快速排序。现在才得知很多语言内部都使用Timsort排序。随后我又在网上找到了这样一张图排序比较的图:可以发现,Timsort在表现上比QuickSort还要好。这篇博客不去详细讨论Timsort的实现,我可能会写另一篇博客单独讨论Timsort,简单来说Timsort结合了归并排序和插入排序。这个算法在实现过程中明确需要:严格的单调递增或者递减来保证算法的稳定性。

下载地址
用户评论