Stringbuilder append 方法理解

java 专栏收录该内容
5 篇文章 0 订阅

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
  • 1
    点赞
  • 0
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:像素格子 设计师:CSDN官方博客 返回首页

打赏作者

糖醋小侠

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值