kaseyhebe 2015-01-21 21:46 采纳率: 21.1%
浏览 5001

还是 关于comparetor 的问题, 为什么返回1 就是正序,返回-1就是逆序呢?

ArrayList list = new ArrayList();

    list.add(100);
    list.add(22);
    list.add(77);
    list.add(44);
    list.add(55);

    System.out.println(list);

    Collections.sort(list, new Comparator<Integer>() {
        @Override
        public int compare(Integer num1, Integer num2) {
            return  num1>num2?1:-1;
        }
    });

    System.out.println(list);

}

我们假设 num1 = 100 , num2 = 22. 那么 num1>num2 返回的是1 . 然后呢? 不太明白 。 能帮忙细讲解 一下么。。一步一步的,,

  • 写回答

6条回答 默认 最新

  • GalinaY 2015-01-22 01:43
    关注

    Comparator的是根据二叉树进行排序,并且是根据中序进行遍历的。
    num1>num2?1:-1; 这个是三元运算符(具体可以了解下Java基础),如果num1 > num2 则返回1,那么num1是右节点,num2是左节点,中序遍历后,那么compartor就是是按照num从小到大的顺序排列;
    反之,num1>num2?-1:1则是如何num1 > num2 则返回-1,num1是左节点,num2是右节点,中序遍历后,那么compartor就是是按照num从大到小的顺序排列;

    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突