1

我需要读取一个字符串数组,其中每个字符串由两个子字符串组成:这些子字符串中的第一个对于数组的所有字符串都是相同的。读取这个数组的方法提供了一个ArrayList<CharSequence>参数,所以我需要一个 CharSequence,您可以在其中设置对公共子字符串的引用,当然还有变量子序列,方式如下:

public class MyCharSequence implements CharSequence {

    public MyCharSequence(CharSequence common, CharSequence append) {
        // ...
    }

    // other CharSequence method
    // ...
}

实现非常简单,但我想知道是否已经有一个类允许做这样的事情。

4

1 回答 1

0

这是一种称为绳索的通用数据结构的特殊情况,它在链表或树中排列数组的段(字符或其他)。目标通常是加速数组/字符串中间的插入或删除,或者以最少的复制支持无损操作,但您可以通过共享包含您感兴趣的共享子字符串的列表/树元素来使用它来节省内存。 本文首先简要概述了绳索,尽管它更关注高效的更新操作而不是子字符串共享。

Java 标准库不包含绳索实现,但很容易编写自己的库或尝试使用本文中描述的现有库。图书馆推荐在 Stack Overflow 上是题外话,所以我不能提供更多的指导。

于 2014-06-16T21:11:41.023 回答