我需要编写一个能够执行以下功能的函数
答案 0 :(得分:1)
请注意:
fqField.substring(quoteEnd+1, fqField.length());
使用引用字符串的字符数组,而不是创建新字符串。也就是说,如果我有一个100,000字符的数组,并且我采用了2字符的子字符串,则子字符串将引用原始的100,000个字符。即使您处理对原始字符串的引用也是如此。
如果你这样做:
new String(fqField.substring(quoteEnd+1, fqField.length()));
然后这将创建一个新的String,带有一个新的底层字符数组。然后,您可以处理原件,并且不会消耗原件的内存。
答案 1 :(得分:1)
您正在创建的ArrayList“前缀”具有列表的默认大小。你可以为它增加一个合理的大小。
使用char而不是String,你可以选择将它作为params传递吗?
如何从一开始就将“前缀”设为String(或char)数组,而不是先将其作为ArrayList并稍后进行转换。