java 中对lis进行排序时,排序失效解决

原创 2016年08月30日 15:32:15

使用Clollections.sort排序有两种,无论那种,对对象进行排序时,都需要自己写排序函数。

排序函数返回值是一个整数。记住:这个整数要么为正,要么为负数,仅当两个值相等时才能为0。否则排序就失效了。

升序降序的确定如下:正的往后放,负的往前放。下面这个函数表示按照size的大小,从大到小排序

    public int compareTo(Object o) {
        // TODO Auto-generated method stub
        Node arg=(Node)o;
//        int rst=this.size-arg.getSize();
//        return rst;      
        if(this.size>arg.getSize()){
            return -1;
        }
        return 1;
    }

如果两个值相等时,不返回零,jdk1.7就会报告如下异常;

Comparison method violates its general contract!

该异常原因以及解释参见:http://blog.2baxb.me/archives/993


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Collections.sort()崩溃分析

对List排序一般采用两种方法: (1)实体类实现`Comparable`接口,完成`compareTo(T o)`方法。 (2)创建一个`Comparator`的实现类,完成`compare(T o...

Java自定义比较器实现中文排序

compareTo 方法  compareTo()是两个字符串对象比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。compareTo()是两个字符串对象按A...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

ACMSTEP 1.3.7 Wooden Sticks //排序 DP (LIS)

原题地址 Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot...

杭电1160 排序+LIS+记录

FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)...

杭电1025 LIS+排序

Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 6...

UVA Live 6122 || UESTC OJ 2326 枚举+排序+LIS

传送门: UVALive UESTC OJ 题意:有n个盒子,知道长宽高,将盒子堆起来,盒子可任意翻转,顺序任意,要求上面盒子的底面不能超出下面盒子的底面,问最多能堆多少个。 思路:首先n ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)