Java Arrays.sort() 在子数组上的问题——这是一个错误吗?

Problems with Java Arrays.sort() on sub-arrays -- is this a bug?

我注意到在子数组上使用 Java Arrays.sort() 时有奇怪的行为。这是一个演示程序。这是 Java 中的错误吗?

package sorted_subsegments;

import java.util.Arrays;

public class sortTest {
    public static void main(String[] args) {
        int A[] = {3, 2, 1};
        System.out.format("A: %s\n", Arrays.toString(A));
        Arrays.sort(A, 0, 1);
        System.out.format(" after sub array sort on A: %s\n", Arrays.toString(A));
        System.out.println("Should be A: [2, 3, 1]");
        Arrays.sort(A);
        System.out.format(" whole array sort on A: %s\n", Arrays.toString(A));
    }
}

来自 Javadoc

fromIndex - the index of the first element, inclusive, to be sorted

toIndex - the index of the last element, exclusive, to be sorted

第二个索引(toIndex)不在要排序的范围内。

因此,在您的示例中

Arrays.sort(A, 0, 1);

您只对数组的元素 [0] 进行排序,这什么都不做。