如果我提供一个不可传递的 Comparator
会发生什么至 Collections.sort
?我会遇到无限循环吗?
我编写的一个小测试产生了一个输出,但我想确保情况始终如此。
问题是在某些情况下,我的比较器会产生循环,在这种情况下我只想确保它不会陷入无限循环。我不关心实际结果。
最佳答案
Java docs说你必须确保你的比较器是可传递的。如果您提供的比较器不符合要求,那么所有赌注都将被取消。它可能适用于给定的实现,但可能会在另一个实现中可怕地崩溃(C++ 中的 std::sort
确实如此)。
简而言之,您不应该依赖它工作,即使它对某些或其他示例有效。
关于java - 是否按非传递比较器 "work"排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951229/