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



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

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: %sn", Arrays.toString(A));
        Arrays.sort(A, 0, 1);
        System.out.format(" after sub array sort on A: %sn", Arrays.toString(A));
        System.out.println("Should be A: [2, 3, 1]");
        Arrays.sort(A);
        System.out.format(" whole array sort on A: %sn", Arrays.toString(A));
    }
}

From Javadoc

fromIndex -第一个元素的索引,包括要排序的

toIndex -要排序的最后一个元素不包含的索引

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

那么,在你的例子中

Arrays.sort(A, 0, 1);

你只排序数组的元素[0],它不做任何事情。

最新更新