StringBuilder类中insert()vs append()的性能有什么不同?我将构建大量的短字符串作为文本标识符并问自己这个问题...我应该用分隔符初始化SB并使用insert + append或者只是追加?
答案 0 :(得分:6)
知道:
insert
相当于append
的时间复杂度(O(n))。insert
(因为它们有不同的目的)可以获得<{1}}以外的任何地方无法。append
最多可能涉及3个insert
(本机)来电,而System.arraycopy
则为1。您可以轻松得出结论:
append
append
这样做,您将获得最佳性能。但同样,这两种方法服务于两个不同的目的(除了最后插入),这里没有真正的问题。
答案 1 :(得分:1)
它们具有不同的功能和不同的复杂性,
插入:
追加:
因此,如果您想要始终添加到尾部,那么性能将是相同的,因为insert不会推送任何元素。
所以,我会使用追加,它只是更清洁。
答案 2 :(得分:-4)
根据Java API文档。如果使用insert,则必须提供偏移量。
StringBuilder.insert(5, "String");
但StringBuilder.append("string")
没有。我认为append具有比insert更好的性能。