为什么我的Arrays.sort方法返回错误?

Cof*_*fee 0 java sorting

我对如何在Java中使用Arrays.sort感到困惑.

在我的Java代码中,我正在尝试对目录中的前10个文件进行排序,因此我将使用Arrays.sort方法.

首先,我创建数组以保存文件长度:

int[] sortedArray =  new int[11];
Run Code Online (Sandbox Code Playgroud)

稍后在我的代码中,在我将数字加载到sortedArray后,我这样做..

Arrays.sort(sortedArray);
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,它并不喜欢这样.我收到此错误:

TopTen.java:46: error: <identifier> expected
        Arrays.sort(sortedArray);
Run Code Online (Sandbox Code Playgroud)

这是我的其余代码

File dir = new File("C:\\Users\\Code\\Desktop\\Work\\Oracle_Training\\Java_training\\Java_Challenge_Disk_10_files");

for(File child : dir.listFiles()){
    System.out.print(child.getName() + " " + child.length() + " , ");   
    //puting into sortedArrya
    for (int i = 0; i<11; i++){ 
        sortedArray[i] = (int)child.length();
        continue;
    }
}

int[] array = new int[10];

Random rand = new Random();
for (int i = 0; i < array.length; i++)
    array[i] = rand.nextInt(100) + 1;
System.out.println(Arrays.toString(array));

}

Arrays.sort(sortedArray);
Run Code Online (Sandbox Code Playgroud)

我使用的是Arrays.sort纠正吗?谢谢

tbo*_*odt 5

你正在调用Arrays.sort(),但在第二个for循环开始后你忘记了一个左大括号.换句话说,将最后一个for循环更改为:

for (int i = 0; i < array.length; i++) {
    array[i] = rand.nextInt(100) + 1;
    System.out.println(Arrays.toString(array));
}
Run Code Online (Sandbox Code Playgroud)

为了防止这种情况再次发生,你可以养成添加大括号的习惯,即使for循环中只有一个语句也不会将它们取出.

  • 我认为这是相反的****:有一个不必要的结束括号.为什么要在填充数据时打印数组? (4认同)