Java sort()与稳定排序
首先由博文 JAVA里sort()方法的使用与原理解析的结论如下:
sort()是根据需要排序的数组的长度进行区分的:
首先先判断需要排序的数据量是否大于60。
小于60:使用插入排序,插入排序是稳定的
大于60的数据量会根据数据类型选择排序方式:
基本类型:使用快速排序。「因为基本类型不需要考虑稳定性」
Object类型:使用归并排序「因为归并排序具有稳定性」
注意:不管是快速排序还是归并排序。在二分的时候小于60的数据量依旧会使用插入排序
sort()对Obejct类型的排序是稳定的
因此对于有序集合如List,排序后的结果是稳定的。
但对于HashMap之类的无序集合来说,排序结果是不稳定的。
因此,如果想稳定排序,要使用LinkedHashMap