1

各文字列が 2 つの部分文字列で構成されている文字列の配列を読み取る必要があります。これらの部分文字列の最初の部分は、配列のすべての文字列で同じです。この配列を読み取るメソッドは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 に答える