我是靠谱客的博主 贪玩棉花糖,这篇文章主要介绍Java1.7通过collections类的sort方法对ArrayList进行排序无效的解决办法。,现在分享给大家,希望可以做个参考。

项目中对ArrayList进行排序,采用如下方法:

复制代码
1
2
3
4
5
6
7
8
9
10
11
class SortByNumber implements Comparator<ExchangeCommodity.ListBean> { public int compare(ExchangeCommodity.ListBean listBean1, ExchangeCommodity.ListBean listBean2) { if (listBean1.getNumber() > listBean2.getNumber()) { return 1; }else { return 0; // java1.7之后必须返回-1 } } }
复制代码
1
Collections.sort(commodities, new SortByNumber()); // commodities是待排序的ArrayList

结果根本没有排序,也没有报错。原因是:Comparator返回值在1.7里必须是一对相反数,如1和-1,不能是1和0.因为1.7的排序算法采用timsort,http://baike.baidu.com/link?url=UCowuf65GHz3cWVf_d7t0QzYUCcwU0QUwserNTIrImlaTBvBAaVfywzppQ70DqWKzUu3dPqsF21k9IDpT8QPE_ 对返回值有严格要求

最后

以上就是贪玩棉花糖最近收集整理的关于Java1.7通过collections类的sort方法对ArrayList进行排序无效的解决办法。的全部内容,更多相关Java1.7通过collections类内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部