6

String.toCharArray()Javaでの実行時間は?ソースコードは

 public char[] toCharArray() {
    // Cannot use Arrays.copyOf because of class initialization order issues
    char result[] = new char[value.length];
    System.arraycopy(value, 0, result, 0, value.length);
    return result;
}

System.arrayCopyですか?実行時間は O(n) ですか? ソースコードは、それがどのように実装されているかについてあまり語っていません。すべての要素を通過してコピーしますか? ありがとう。

4

1 に答える 1

5

System.arraycopy()通常、組み込み関数であり、非常に高速です。とはいえ、それでも配列のすべての要素を確認 (およびコピー) する必要があるため、その漸近的な複雑さは配列の長さに対して線形O(n)です。

したがって、 の複雑さはtoCharArray()ですO(n)。ここnで、 は文字列の長さです。

于 2013-01-05T12:40:02.040 に答える