JDK7中Arrays工具类sort()对基本类型和对象采用不同排序算法的原因是什么?

如题,JDK7中的java.util.Arrays工具类中的排序方法sort()对基本类型和对象采用不同的排序算法。
对基本类型,采用DualPivotQuicksort排序算法,如下:

public static void sort(int[] a) {
    DualPivotQuicksort.sort(a);
}

对Object类型,采用ComparableTimSort排序算法,如下:

public static void sort(Object[] a) {
    if (LegacyMergeSort.userRequested)
        legacyMergeSort(a);
    else
        ComparableTimSort.sort(a);
}

请问这样选择的原因是什么?

查看回复