-4

サブ配列で 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));
    }
}
4

1 に答える 1

6

Javadoc から

fromIndex - 並べ替えられる最初の要素のインデックス (両端を含む)

toIndex -ソートされる最後の要素のインデックス、排他的

2 番目のインデックス ( toIndex) は、並べ替えの範囲に含まれません。

だから、あなたの例では

Arrays.sort(A, 0, 1);

配列の要素 [0] のみを並べ替えていますが、何もしません。

于 2016-06-24T08:21:41.883 に答える