|
LHA Library for Java | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjp.gr.java_conf.dangan.util.lha.HashAndBinaryTreeSearch
public class HashAndBinaryTreeSearch
ハッシュと二分木を使った LzssSearchMethod の実装。
データ圧縮ハンドブック[改定第二版]
M.ネルソン/J.-L.ゲィリー 著
萩原剛志・山口英 訳
ISBN4-8101-8605-9
5728円(税抜き,当方の購入当時の価格)
を参考にした。
-- revision history --
$Log: HashAndBinaryTreeSearch.java,v $
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[change]
LzssSearchMethod のインタフェイス変更にあわせてインタフェイス変更
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
| Constructor Summary | |
|---|---|
HashAndBinaryTreeSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer)
ハッシュと二分木を使用した検索機構を構築する。 ハッシュ関数はデフォルトのものを使用する。 |
|
HashAndBinaryTreeSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
java.lang.String HashMethodClassName)
ハッシュと二分木を使用した LzssSearchMethod を構築する。 |
|
| Method Summary | |
|---|---|
void |
put(int position)
position から始まるデータパタンを ハッシュと二分木を使用した検索機構に登録する。 |
int |
putRequires()
put() または searchAndPut() を使用して データパタンを二分木に登録する際に 必要とするデータ量を得る。 二分木は登録の際にデータパタンを構成する 全て(MaxMatchバイト)のデータを必要とする。 |
int |
search(int position,
int lastPutPos)
ハッシュと二分木を使用した検索機構に登録されたデータパタンを検索し position から始まるデータパタンと最長の一致を持つものを得る。 TextBuffer.length < position + MaxMatch となるような position では、 二分木を完全に走査しないため最長一致を得られるとは限らない。 |
int |
searchAndPut(int position)
ハッシュと二分木を使用した検索機構に登録された データパタンから position から始まるデータパタンと 最長の一致を持つものを検索し、 同時に position から始まるデータパタンを ハッシュと二分木を使用した検索機構に登録する。 |
void |
slide()
TextBuffer内の position までのデータを前方へ移動する際、 それに応じて ハッシュと二分木を使用した検索機構を構成するデータも TextBuffer内のデータと矛盾しないように前方へ移動する処理を行う。 |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HashAndBinaryTreeSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer)
DictionarySize - 辞書サイズMaxMatch - 最長一致長Threshold - 圧縮、非圧縮の閾値TextBuffer - LZSS圧縮を施すためのバッファ
public HashAndBinaryTreeSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
java.lang.String HashMethodClassName)
DictionarySize - 辞書サイズMaxMatch - 最長一致長Threshold - 圧縮、非圧縮の閾値TextBuffer - LZSS圧縮を施すためのバッファHashMethodClassName - Hash関数を提供するクラス名
java.lang.NoClassDefFoundError - HashMethodClassName で与えられたクラスが
見つからない場合。
java.lang.InstantiationError - HashMethodClassName で与えられたクラスが
abstract class であるためインスタンスを生成できない場合。
java.lang.NoSuchMethodError - HashMethodClassName で与えられたクラスが
コンストラクタ HashMethod( byte[] )
を持たない場合| Method Detail |
|---|
public void put(int position)
put in interface LzssSearchMethodposition - TextBuffer内のデータパタンの開始位置public int searchAndPut(int position)
searchAndPut in interface LzssSearchMethodposition - TextBuffer内のデータパタンの開始位置。
LzssOutputStream.createSearchReturn(int,int),
LzssOutputStream.NOMATCH
public int search(int position,
int lastPutPos)
search in interface LzssSearchMethodposition - TextBuffer内のデータパタンの開始位置。lastPutPos - 最後に登録したデータパタンの開始位置。
LzssOutputStream.createSearchReturn(int,int),
LzssOutputStream.NOMATCHpublic void slide()
slide in interface LzssSearchMethodpublic int putRequires()
putRequires in interface LzssSearchMethod
|
LHA Library for Java | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||