我目前正在开发一个带有java的Android应用程序。
显然,我必须使用大量的字符串操作。我更喜欢使用类SpannableStringBuilder
,因为它具有最多的功能,非常容易追加或添加跨度到字符串。
但是我很好奇这个类的内部实现,所以我读了SpannableStringBuilder
的java文件中的部分代码。当我看到它时,我很惊讶,当我在stringbuilder上使用append()
或replace()
函数时,它只是创建一个带有结果长度的新char数组,并复制原始char数组中的所有字符。开始结束新数组,将更改的部分放在一起。
现在我很担心,因为我正在处理的内容与备忘录非常相似,我使用SpannableStringBuilder
和append()
用户键入的每个输入。但由于它是一个memopad,用户甚至可以键入多于几万个字符。在这种情况下,每次用户使用键盘键入内容时,append()
或replace()
函数都必须复制一大堆字符...我认为这应该会对性能产生巨大影响。
这是我应该担心的吗?还有其他方法可以制作连续可追加的弦线制作者吗?