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

概述

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


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
}
}
}
 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类的sort方法对ArrayList进行排序无效的解决办法。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部