java - 后缀数组在Java中的实现

标签 java string refactoring suffix-array

我正在寻找一种高效的 n 阶马尔可夫链方法,以在给定一组示例文本的情况下生成随机文本字符串。我目前有一个使用多层 map 的 Java 实现,但它很笨重。后缀数组非常适合我的需求,但我不清楚是否可以在 Java 中有效地实现它。

在 C 中我可能会做类似的事情:

char exampleText[MAX];
char *suffixArray[MAX];
...
while(n<MAX && suffixArray[n++] = &exampleText[n]);
sort(suffixArray);

这在 Java 中变得棘手,因为我必须采用 exampleText 的子字符串,或将 suffixArray 转换为索引数组或其他内容。

对于在 Java 中解决这个问题的好方法有什么建议吗?

最佳答案

String 会 [通常] 为您做这件事。 (典型的实现在使用 substring 创建时共享支持数组,尽管这可能随时更改。)

关于java - 后缀数组在Java中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3349861/

相关文章:

java - 对象通用父类(super class) java instanceof

java - 从 LinkedHashMap 构建有序的 JSON 字符串

refactoring - 过早重构?

c - 在 char * var 中分配的内存;声明

Python,从子列表中删除所有数字

c++ - Visual Studio 代码重构似乎不起作用(例如重命名符号 - f2)

java - Eclipse - 记录并应用移动和重命名重构到另一个工作区

java - 如何优化这个SQL删除

java - 有人可以告诉我一个好的依赖矩阵是什么样子并说明原因吗?

java - Sonar 项目属性排除规则鱿鱼 :S1191