微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – StringBuilder与Ropes

早上好,

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

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

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

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

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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐