1

配列「thisRow」がArrays.sort(thisRow)に渡されたときに、Javaが配列「thisRow」が無効であると考える理由がわかりません。「thisRow」は私にはint[]のように見えます。ここでの問題は何ですか?

エラーメッセージ:「タイプの不一致:Test.mySort(Test.java:57)でvoidからint[]に変換できません」

private static int[][] mySort(int[][] anArray) {
    for(int i = 0; i < anArray.length; i++){
        int thisRow[] = getRow(anArray, i);
        int[] sorted = Arrays.sort(thisRow);
    }
}

//This method will get the specified row out of the array.
private static int[] getRow(int[][] anArray, int row) {
    int thisRow[] = new int[anArray[row].length];
    for(int j = 0; j < anArray[row].length; j++){
        thisRow[j] = anArray[row][j];
    }
    return thisRow;
}
4

3 に答える 3

15

Arrays.sortvoidはタイプではなく戻りますint[]

javadocによる

指定されたintの配列を番号の昇順で並べ替えます。ソートアルゴリズムは、JonL.BentleyとM.DouglasMcIlroyの「EngineeringaSortFunction」、Software-Practice and Experience、Vol。23(11)P. 1249-1265(1993年11月)。このアルゴリズムは、多くのデータセットでn * log(n)のパフォーマンスを提供し、他のクイックソートのパフォーマンスを2次パフォーマンスに低下させます。

交換

int[] sorted = Arrays.sort(thisRow);

Arrays.sort(thisRow);
于 2012-11-14T16:13:40.463 に答える
3

Arrays.sort(既存のオブジェクトを変更することにより)配列をインプレースでソートし、何も返しません。したがって、交換する必要があります

int[] sorted = Arrays.sort(thisRow);

単に

Arrays.sort(thisRow);
于 2012-11-14T16:14:11.167 に答える
1

Arrays#sort戻りませんint[]、戻りますvoid、ソース配列自体をソートします。

指定されたintの配列を番号の昇順で並べ替えます。ソートアルゴリズムは、JonL.BentleyとM.DouglasMcIlroyの「EngineeringaSortFunction」、Software-Practice and Experience、Vol。23(11)P. 1249-1265(1993年11月)。このアルゴリズムは、多くのデータセットでn * log(n)のパフォーマンスを提供し、他のクイックソートのパフォーマンスを2次パフォーマンスに低下させます。

于 2012-11-14T16:14:51.943 に答える