Проблемы с 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] массива, который ничего не делает.

Другие вопросы по тегам