java - StringBuilder 与绳索

标签 java stringbuilder ropes

早上好

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

  • 从流中请求新字符时,该字符会添加到缓存中,以防请求回滚。
  • 当请求回滚时,返回到缓存中的某个点,以便在请求另一个字符时,它会从那里获取它。
  • 找到 token 后,删除回滚缓存中直到当前位置的所有内容。

简而言之,我很想知道您认为哪种数据结构最适合:

  • 优先级 1:附加字符(欢迎添加代码点)
  • 优先级2:对数据结构做子串(如StringBuilder.delete(...))(或完全清除)
  • 优先级 3:能够创建缓存的字符串(例如 StringBuilder.toString())

希望尽快收到您的来信!

最佳答案

如果我是您,对于这种特殊用途以及可能的性能和资源限制,我会从基元实现我自己的缓冲区。我认为调整现有结构更麻烦。当然,如果没有坏处,我会尝试符合众所周知的相关接口(interface),例如 CharSequenceAppendableList

关于java - StringBuilder 与绳索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000476/

相关文章:

java - StringBuilder.toString() 太大时在 Eclipse 控制台中打印为空字符串?

java - 为什么\n 和 (String)System.getProperty ("line.separator");采取不同的行动?

data-structures - 字符串表示 : improvements over ropes?

python - Python 有绳索数据结构吗?

java - 在java中将字符串数组分配给组合框

java - 安卓报警服务没有响应

java - 如果双指同时触摸屏幕,则无法捏合缩放

java - 如何替换字符串中的多个子字符串实例

string - 在 Scala 字符串中插入字符

java - 基本 Java 登录 Servlet 不工作