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


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

相关文章推荐

Java如何对ArrayList里的元素排序

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;   ...

关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案

首先介绍Oracle 9i新增加的一个系统自带的排序函数  1、按首字母排序  在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值      SCHINESE_RAD...
  • LanBuff
  • LanBuff
  • 2016年08月25日 15:09
  • 563

java中进行集合排序

  • 2016年10月13日 11:44
  • 1KB
  • 下载

java大作业用数组进行队列排序

  • 2010年01月12日 17:08
  • 3KB
  • 下载

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 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 中对lis进行排序时,排序失效解决
举报原因:
原因补充:

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