java - 是否按非传递比较器 "work"排序?

标签 java sorting comparator

如果我提供一个不可传递的 Comparator 会发生什么至 Collections.sort ?我会遇到无限循环吗?

我编写的一个小测试产生了一个输出,但我想确保情况始终如此。

问题是在某些情况下,我的比较器会产生循环,在这种情况下我只想确保它不会陷入无限循环。我不关心实际结果。

最佳答案

Java docs说你必须确保你的比较器是可传递的。如果您提供的比较器不符合要求,那么所有赌注都将被取消。它可能适用于给定的实现,但可能会在另一个实现中可怕地崩溃(C++ 中的 std::sort 确实如此)。

简而言之,您不应该依赖它工作,即使它对某些或其他示例有效。

关于java - 是否按非传递比较器 "work"排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951229/

相关文章:

java - 如何使用资源 jar 中分解出的 .xsd 文件来指定 JAXB 架构?

java - 如何编写比较器以将列表的所有元素与输入进行比较并移动到顶部

java - 使用 Java 只获取目录中的新文件

java - 如何使用HQL从实体中获取数据?

Java 应用程序服务器工作目录

java - 动画 Swingworker 线程和计时器

javascript - 使用我用于随机化列表的 Javascript 代码的不同浏览器之间的结果不一致

c++ - 梳排序实现无法准确排序,C++

java - 排序字符串对象

c++ - 为什么我不能将两个不同的比较器传递给一个模板函数?