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 回答