Проблемы с Java Arrays.sort() для подмассивов - это ошибка?
Я заметил странное поведение при использовании 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));
}
}
1 ответ
Решение
От Javadoc
fromIndex - индекс первого элемента, включительно, для сортировки
toIndex - индекс последнего элемента, эксклюзивный, для сортировки
Второй индекс (toIndex
) НЕ входит в диапазон для сортировки.
Итак, в вашем примере
Arrays.sort(A, 0, 1);
вы сортируете только элемент [0] массива, который ничего не делает.