java - 使用比较器的意外输出

标签 java sorting

我有以下程序

import java.util.*;
public class Test {
    public static void main(String[] args) {
        Integer[] array = { 3, 1, 4, 1, 5, 9 };
        Arrays.sort(array, new Comparator<Integer>() {
            public int compare(Integer i1, Integer i2) {
                return i1 < i2 ? -1 : (i2 > i1 ? 1 : 0);
            }
        });
        System.out.println(Arrays.toString(array));
    }
}

这给了我输出 [3, 1, 4, 1, 5, 9]。为什么?

最佳答案

因为i1 < i2i2 > i1相同- 看看你在 compareTo 方法中写了什么。

关于java - 使用比较器的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900871/

相关文章:

java - Android:新线程在完成执行后会停止吗?

Java - 创建多个实例时在内存中创建了多少个实例方法?

java - GridBagLayout 未按预期工作

java - 我实现了一个自定义比较器来对 ArrayList 进行排序,但 listview 仍未排序

java - 在java中按值对 map 列表进行排序

java - 一个类的方法没有被另一个类调用

java - 是否可以使用 jax-ws 生成 xml,但不发送出去

c++ - STL 和 vector 是否提供排序选项?

python - 用德语 Umlaute 对 Pandas 数据框进行排序

javascript - 将 jquery 对象数组转换为 html