StringBuilder-重置或创建新的

我有一个条件,即StringBuilder会不断存储与大型平面文件(100兆字节)中的模式匹配的行。但是,达到条件后,我将StringBuilder变量的内容写入文本文件。

现在我想知道是否应该通过重置对象->使用相同的变量

stringBuilder.delete(0,stringBuilder.length())

要么

stringBuilder=new StringBuilder();

请提出就性能和OOM问题而言您认为哪个更好。

回答:

我认为StringBuilder#delete(start, end)通话仍然很昂贵,您应该这样做:

stringBuilder.setLength(0);

重置它。


查看完

,似乎setLength(int)完整保留了旧缓冲区,最好调用:

在上述调用which之后 。

所以这样的事情会更有效:

stringBuilder.setLength(0); // set length of buffer to 0

stringBuilder.trimToSize(); // trim the underlying buffer

以上是 StringBuilder-重置或创建新的 的全部内容, 来源链接: utcz.com/qa/408680.html

回到顶部