l*****c 发帖数: 1153 | 1 竟然被强迫用JAVA,唉。
怎么样reallocate一个指定长度的String?我需要对一个output String做大量的
append操作(Million级别),需要尽可能的efficient的来做。最终String的总长度是
事先知道的。所以照C++来说,当然是preallocate space然后往里填效率高。 |
g*****g 发帖数: 34805 | 2 StringBuffer or StringBuilder depending on synchronization requirement
You can preallocate space. You should feel good about it since you'll
find the API way more friendly than any C++ counter part.
【在 l*****c 的大作中提到】 : 竟然被强迫用JAVA,唉。 : 怎么样reallocate一个指定长度的String?我需要对一个output String做大量的 : append操作(Million级别),需要尽可能的efficient的来做。最终String的总长度是 : 事先知道的。所以照C++来说,当然是preallocate space然后往里填效率高。
|
c*****t 发帖数: 1879 | 3 StringBuffer buffer = new StringBuffer ();
buffer.append (object/float/etc);
最后 buffer.toString () 得到你要的。
StringBuffer 内部有很好的 memory management ,你不用操心。
【在 l*****c 的大作中提到】 : 竟然被强迫用JAVA,唉。 : 怎么样reallocate一个指定长度的String?我需要对一个output String做大量的 : append操作(Million级别),需要尽可能的efficient的来做。最终String的总长度是 : 事先知道的。所以照C++来说,当然是preallocate space然后往里填效率高。
|
g*****g 发帖数: 34805 | 4
new StringBuilder(int capacity) is probably better for his app.
【在 c*****t 的大作中提到】 : StringBuffer buffer = new StringBuffer (); : buffer.append (object/float/etc); : 最后 buffer.toString () 得到你要的。 : StringBuffer 内部有很好的 memory management ,你不用操心。
|
c*****t 发帖数: 1879 | 5 en,没仔细看他的说明。
【在 g*****g 的大作中提到】 : : new StringBuilder(int capacity) is probably better for his app.
|
l*****c 发帖数: 1153 | 6 多谢多谢!
我发觉我很搞笑。曾经教数据结构用java,java code也碰了不少,但是就是不喜欢
java。 |