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数组排序Arrays.sort,以及Comparator接口的用法

有的时候需要对数组里的element进行排序。当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sort排序方法,在数组元素比较少的时候为何不用?   Sorting an A...
  • wang_yubin
  • wang_yubin
  • 2012年10月11日 10:34
  • 26269

java Collections.sort()实现List排序的默认方法和自定义方法

感谢有奉献精神的人 转自:http://www.cnblogs.com/liuyuanyuanGOGO/p/java_collections.html 1.java提供的默认list...
  • zhangliao613
  • zhangliao613
  • 2015年08月12日 14:58
  • 491

java中Collections.sort排序详解

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,...
  • tjcyjd
  • tjcyjd
  • 2015年03月06日 15:21
  • 220543

对pair进行排序

bool cmp(const pair a, const pair b)  {     return a.first } pair pa; pa.push_back(make_pair(...
  • pcjackson
  • pcjackson
  • 2017年05月06日 21:38
  • 249

变量排序

【问题描述】       把不同的变量进行升序排序用小于操作符命令实现的。例如由A   在本题中,你将得到若干条小于操作符命令,形如 A ...
  • qq_35546274
  • qq_35546274
  • 2016年07月08日 12:03
  • 164

Java如何对ArrayList里的元素排序

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;   ...
  • xiaxiaorui2003
  • xiaxiaorui2003
  • 2014年04月22日 14:53
  • 46104

List.Sort()排序

 在一个List  list 中按字段排序,list.Sort((up,down) => up.stuAge.CompareTo(down.stuAge));必须是在.Net.3.5下才行....
  • jiguixin
  • jiguixin
  • 2009年03月18日 00:33
  • 200

堆 相关笔试题

牛客网 专项练习题 (101,88,46,70,34,39,45,58,66,10)是堆()A. 对 B. 错 正确答案: A 最小堆:直接父节点比两个子节点都小。 最大堆:直...
  • wwwdc1012
  • wwwdc1012
  • 2017年09月11日 10:21
  • 124

堆排序算法知识点总结

1. 在用堆排序算法排序时,如果要进行增序排序,则需要采用“大根堆”,减序排列则要采用“小根堆”。堆排序的方法:首先,将当前的数组调整为堆,也就是建立堆。然后把根与最后的元素交换,重新调整堆,然后再把...
  • violet_echo_0908
  • violet_echo_0908
  • 2016年04月18日 23:16
  • 364

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

使用Clollections.sort排序有两种,无论那种,对对象进行排序时,都需要自己写排序函数。 排序函数返回值是一个整数。记住:这个整数要么为正,要么为负数,绝对不能为零。否则排序就失效了。 ...
  • qq_18415779
  • qq_18415779
  • 2016年08月30日 15:32
  • 371
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 中对lis进行排序时,排序失效解决
举报原因:
原因补充:

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