我注意到 StringBuilder
由一个数组支持,这使得它分配了一个内存块。我不喜欢这种行为,因为内存高度碎片化,有时很难找到足够大的内存块,这会触发 GC...
我想知道是否有一个版本的 StringBuilder
由链表支持,这将更加内存友好。
最佳答案
首先,我会认真质疑替代方案的必要性:对于大多数用例,StringBuilder
的实现非常明智并且工作正常。先衡量再做决定。
如果您确实需要尺寸如此之大的类似物体以至于这成为一个问题,那么像 Ropes for Java 这样的东西可能有帮助:它实际上是一个包含许多不同 CharacterSequence
实现(具有公共(public)接口(interface) Rope
)的库,针对不同的交互进行了优化。
关于java - 由链表备份的 StringBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707894/