2

Java初心者です。

Java でいくつかの基本的なアルゴリズムを実装しようとしています。

しかし、私はこの基本的なケースについて考えることができません..

public int[] sort(int[] input){

 if (input.length == 0 ) // return error?? but how

 if (input.length == 1) return input

 //sorting algo

}

空の配列に対してエラーをスローする良い方法は何ですか?

4

4 に答える 4

3

空の配列が与えられた場合にエラーを返すのは関数の責任であってはなりませんsort。空の配列を返すだけです。適切に動作するジェネリック関数は、通常の状況では完全に有効な入力に対してエラーをスローするべきではありません。

空の配列が他の意味上の理由でエラーである場合は、関数の呼び出し元が事前に検出する必要があります。

特定のアプリケーションで、各呼び出しの前に長さ 0 のチェックを繰り返し実行することを避けたい場合は、長さsort0 の動作を明示的に呼び出し、代わりにそれを呼び出すラッパー関数を記述します。次に例を示します。

public int[] sortNonEmptyArray(int[] input) {
    if (input.length == 0) {
         throw new IllegalArgumentException("empty array passed");
    }
    return sort(input);
}
于 2013-09-01T16:59:54.357 に答える
0

設定された規則に従い、java.util.Arrays#sort空の配列を返します。

Java ドキュメント

于 2013-09-01T17:00:31.340 に答える