Java 将字符串转换为字符数组的空间复杂度的大O表示法

Java 将字符串转换为字符数组的空间复杂度的大O表示法,java,big-o,Java,Big O,给定一个字符串str=absdf;如果我们使用- char[]arr=str.toCharArray 是否被认为是ON的额外空间,或将是O1? < P>这是根据安迪提出的,StrugToalStudio的实现类似于: 公共字符{ char result[]=新字符[value.length]; //复制内容 返回结果; } 正如@andy所建议的那样,String.ToCharray的实现类似于: 公共字符{ char result[]=新字符[value.length]; //复制内容 返回结

给定一个字符串str=absdf;如果我们使用- char[]arr=str.toCharArray

是否被认为是ON的额外空间,或将是O1?

< P>这是根据安迪提出的,StrugToalStudio的实现类似于:

公共字符{ char result[]=新字符[value.length]; //复制内容 返回结果; } 正如@andy所建议的那样,String.ToCharray的实现类似于:

公共字符{ char result[]=新字符[value.length]; //复制内容 返回结果; } 时间复杂性将被启用。类似于创建等于字符串长度的新数组并将字符串复制到字符数组。创建阵列需要时间,复制需要时间。因此,最坏情况下的总复杂性将启用。

时间复杂性将启用。类似于创建等于字符串长度的新数组并将字符串复制到字符数组。创建阵列需要时间,复制需要时间。因此,最坏情况下的总复杂性将启用。

它将启用

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;
}
此代码取自openjdk实现。我们试图迭代字符串的每个元素,并将其复制到数组的每个单元格中。 迭代次数将是字符串的长度。

其上

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;
}
此代码取自openjdk实现。我们试图迭代字符串的每个元素,并将其复制到数组的每个单元格中。
迭代次数将是字符串的长度。

ON。必须复制数组。必须复制数组,因为您可以改变arr的元素,但字符串必须保持不变。@用户字符串由char数组支持,但该数组不是方法返回的数组。ON。必须复制数组。必须复制数组,因为您可以改变arr的元素,但字符串必须保持不变。@用户字符串由字符数组支持,但这不是方法返回的数组。我认为问题是关于空间复杂性。我认为问题是关于空间复杂性。我认为问题是关于空间复杂性。是的,时间和空间都有相同的时间复杂性。你的意思是时间和空间复杂性都是相同的。你不应该说空间具有时间复杂性。空间复杂度表示程序使用了多少额外空间。我想问题是关于空间的复杂性。是的,时间和空间都有相同的时间复杂性。你是说时间和空间的复杂性是一样的。你不应该说空间具有时间复杂性。空间复杂度表示程序使用了多少额外空间。希望它有意义。