本文实例讲述了Java针对ArrayList自定义排序的2种实现方法。分享给大家供大家参考,具体如下:
Java中实现对list的自定义排序主要通过两种方式
1)让需要进行排序的对象的类实现Comparable接口,重写compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用Collections.sort()来排序对象数组
测试类:
结果:
2)实现比较器接口Comparator,重写compare方法,直接当做参数传进sort中
测试类:
输出结果:
单从上面的例子可以看出排序是稳定的,去看了下java的的源代码,确实是基于稳定的归并排序实现的,内部还做了优化,叫TimSort。(关于TimSort还可参考https://baike.baidu.com/item/TimSort?fr=aladdin)
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》