あり、配列・双方向リストともに、シーケンスデータ用データ構造としては問題がある。テキストエディタは文字のシーケンスデータを取り扱うものであり、ランダムアクセスと編集処理が高速である必要がある。テキストエディタのデータ構造として、「配列」または「双方向リスト」をそのまま用いるのは、上記の点で好ましくない。ひとつの解決方法として、改行で区切られる1行を動的配列で管理し、行を双方向リストで管理するというものがある。データ構造であり、この方法を採用したテキストエディタはかなり多いらしい。もこのデータ構造を(改良したものを)採用している。なり、パフォーマンスが極端に落ちる。は行番号キャッシュ法により対応している)。ランダムアクセスに近い状態となり、行数がかなり多い場合は応答性が悪くなるという問題がある。小領域メモリが大量に作られ、バッファオブジェクトを解放するのにかなりの時間を要する(数10秒を要することもある)。バッファ」というものがある。ギャップバッファとは、動的な配列で、編集箇所を境にテキストデータをバッファの先頭と末尾に詰めたものである。テキストエディタの編集箇所は充分に局所化されている。このギャップバッファを採用している。ギャップバッファはパフォーマンスが驚くほど良いのだが、行に関する情報を持っていないので、別途行情報の管理が必要となる。通常のテキストエディタはテキストを行単位で表示するからだ。ギャップバッファの行管理をする最も単純な方法は、各行の先頭位置を動的配列で管理するものである。