0

我需要编写一个函数来执行以下功能

4

2 回答 2

1

请注意:

fqField.substring(quoteEnd+1, fqField.length());

使用被引用字符串的字符数组,而不是创建一个新字符串。也就是说,如果我有一个 100,000 个字符的数组并且我取了一个 2 个字符的子字符串,那么该子字符串将引用原始的 100,000 个字符。即使您处置对原始字符串的引用也是如此。

如果你这样做:

new String(fqField.substring(quoteEnd+1, fqField.length()));

那么这将创建一个带有新底层字符数组的新字符串。然后,您可以处理原件,并且您不会为原件消耗内存。

于 2013-01-04T10:43:14.483 回答
1

您正在创建的 ArrayList “前缀”具有列表的默认大小。您可以为其添加合理的尺寸。

使用 char 而不是 String 怎么样,您可以选择将其作为参数传递吗?

如何从一开始就将“前缀”设置为字符串(或字符)数组,而不是先将其设置为 ArrayList,然后再对其进行转换。

于 2013-01-04T10:47:45.397 回答