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] 进行排序,这什么都不做。
我注意到在子数组上使用 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] 进行排序,这什么都不做。