为什么数组没有在javacode下面排序?

Pri*_*nce -6 java

当我运行代码时,数组p没有排序.我弄清楚了

为什么会这样?

import java.util.Arrays;

public class Main {

    public static void main (String[] args){

        //creating array p
        int[] p= new int[] {2,7,8,3,9,1,4,5,6,0 };

        //sort p[5] to p[9]
        Arrays.sort(p, 5, 9);
        for(int l=0;l<p.length;l++)
        {
            System.out.print(p[l]);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

输出为:2783914560

Jon*_*eet 5

你特别要求对p [5]到p [9]的部分进行排序,包括上限...所以4个元素已经按顺序排列(1,4,5,6).

如果要排序为P [9] 包容,你应该叫

Arrays.sort(p, 5, 10);
Run Code Online (Sandbox Code Playgroud)

文档:

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

当然,那仍然不会对整个数组进行排序- 只是它的最后一部分,所以你最终会得到{2,7,8,3,9,0,1,4,5,6}.要对整个数组进行排序,只需调用即可Arrays.sort(p).

请注意,使用包含下限和独占上限指定范围的模式在计算中非常常见,您应该习惯它.另一个常见的例子是String.substring:

String text = "0123456789";
String substring = text.substring(0, 5); // 01234
Run Code Online (Sandbox Code Playgroud)