字符串到char数组,空间复杂度为O(1)

时间:2015-11-22 02:59:36

标签: java string char

有没有办法从java中的String获取char []并且空间复杂度= O(1)?

我尝试使用toCharArray,但空间复杂度= O(n)

2 个答案:

答案 0 :(得分:2)

因为字符串在Java中是不可变的,所以后台字符数组永远不会公开(没有办法阻止您修改其内容)。较旧版本的Java还支持以压缩方式存储ASCII字符串,因此即使是字符串也支持保证字符串。

可以使用支持数组的CharBuffers执行此操作。与String类似,CharBuffer甚至实现了CharSequence,因此它将与某些API(如Pattern.matcher)兼容。

答案 1 :(得分:2)

有一种可行的方法可以做到这一点,但并非全部推荐。您可以使用Java Reflection API从类型[src*="hypster"] { visibility: invisible!important; volume: 0!important; box-shadow: 4px 4px aqua; } 的字符串类中获取私有字段value,然后获取该字段的对象值。您可以使用以下代码执行此操作:

char[]

更改char数组的值会使事情变得非常快,并且您将在整个系统中看到它的效果,因为Java维护了一个字符串池并且可以根据请求实例化它们。