Stringbuilder append 方法理解

版权声明:Marked By Eaiso https://blog.csdn.net/qq_41868790/article/details/88970182

Stringbuilder对象及其成员简要说明:

  • value[] : 用来存储StringBuilder对象中的字符,以下称内容数组,其长度可在创建对象时通过构造函数初始化,若未初始化则默认初始长度为16
  • count: 记录StringBuilder对象中所存字符的实际数量,以下称实际内容长度

Stringbuilder对象将所存储的内容存在value数组中,并通过count来记录内容的长度,所以count始终小于等于value数组的长度。

append方法大致思想流程图

Created with Raphaël 2.2.0 开始 sb.append(str) 内容数组容量是否足够 count + str.length > char.length? 若大于则现有内容数组容量不足, 需要扩加内容数组的长度 默认扩张后长度为原长度*2再加2,即char.length*2 + 2 判断默认方法增加的容量是否足够 char.length*2 + 2 < count + str.length 不够则内容数组长度增加至 count + str.length, 并将str复制存入内容数组 更新实际内容长度 count += len 结束 容量足够,将str复制存入内容数组, 此时内容数组长度为char.length*2 + 2 内容数组长度足够, 直接将str复制存入内容数组 yes no yes no

猜你喜欢

转载自blog.csdn.net/qq_41868790/article/details/88970182
今日推荐