加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – StringBuilder与Ropes

发布时间:2020-12-15 02:25:38 所属栏目:Java 来源:网络整理
导读:早上好, 我正在编写一个语言解析器,我正在寻找用于回滚缓存的最佳结构,目前执行以下操作: 从流中请求新字符时,如果请求回滚,则将字符添加到缓存中. 当请求回滚时,返回到缓存中的某个点,以便在请求另一个字符时,它会从那里获取它. 找到令牌后,将回滚缓存中的
早上好,

我正在编写一个语言解析器,我正在寻找用于回滚缓存的最佳结构,目前执行以下操作:

>从流中请求新字符时,如果请求回滚,则将字符添加到缓存中.
>当请求回滚时,返回到缓存中的某个点,以便在请求另一个字符时,它会从那里获取它.
>找到令牌后,将回滚缓存中的所有内容删除到当前位置.

简而言之,我很想知道您认为哪种方式是最佳的数据结构:

>优先级1:追加字符(codePoints是一个受欢迎的补充)
>优先级2:对数据结构执行子字符串(如StringBuilder.delete(…))(或完全清除)
>优先级3:能够创建缓存的字符串(例如StringBuilder.toString())

我希望尽快获得你的消息!

解决方法

如果我是你,对于这种专门的使用以及可能的性能和资源限制,我将从原语实现我自己的缓冲区.我认为适应现有结构更加困难.当然,如果它没有受到伤害,我会尝试遵循众所周知的相关接口,例如CharSequence,Appendable,List等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读