|
LHA Library for Java | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Objectjp.gr.java_conf.dangan.util.lha.TwoLevelHashSearch
二段階ハッシュと単方向連結リストを使って高速化された LzssSearchMethod。
定兼氏の論文
を参考にした。
-- revision history --
$Log: TwoLevelHashSearch.java,v $
Revision 1.1 2002/12/10 22:06:40 dangan
[bug fix]
searchAndPut() で最近の最長一致を取れなかったバグを修正。
Revision 1.0 2002/12/03 00:00:00 dangan
first edition
add to version control
| コンストラクタの概要 | |
TwoLevelHashSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer)
二段階ハッシュを使用した LzssSearchMethod を構築する。 |
|
TwoLevelHashSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
String HashMethodClassName)
二段階ハッシュを使用した LzssSearchMethod を構築する。 |
|
| メソッドの概要 | |
void |
put(int position)
position から始まるデータパタンを 二段階ハッシュと連結リストから成る検索機構に登録する。 |
int |
putRequires()
put() で LzssSearchMethodにデータを 登録するときに使用されるデータ量を得る。 |
int |
search(int position,
int lastPutPos)
ハッシュと連結リストを使用した検索機構に登録された データパタンを検索し position から始まるデータパタンと 最長の一致を持つものを得る。 |
int |
searchAndPut(int position)
二段階ハッシュと連結リストから成る検索機構に登録された データパタンから position から始まるデータパタンと 最長の一致を持つものを検索し、 同時に position から始まるデータパタンを 二段階ハッシュと連結リストから成る検索機構に登録する。 |
void |
slide()
TextBuffer内のpositionまでのデータを 前方へ移動する際、それに応じて SearchMethod内の データも TextBuffer内のデータと矛盾しないように 前方へ移動する処理を行う。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public TwoLevelHashSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer)
DictionarySize - 辞書サイズMaxMatch - 最大一致長Threshold - 圧縮、非圧縮の閾値TextBuffer - LZSS圧縮を施すためのバッファ
public TwoLevelHashSearch(int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
String HashMethodClassName)
DictionarySize - 辞書サイズMaxMatch - 最大一致長Threshold - 圧縮、非圧縮の閾値TextBuffer - LZSS圧縮を施すためのバッファHashMethodClassName - Hash関数を提供するクラス名
NoClassDefFoundError - HashMethodClassName で与えられたクラスが見つからない場合。
InstantiationError - HashMethodClassName で与えられたクラスが
abstract class であるためインスタンスを生成できない場合。
NoSuchMethodError - HashMethodClassName で与えられたクラスが
コンストラクタ HashMethod( byte[] )を持たない場合。| メソッドの詳細 |
public void put(int position)
LzssSearchMethod 内の putposition - TextBuffer内のデータパタンの開始位置public int searchAndPut(int position)
LzssSearchMethod 内の searchAndPutposition - TextBuffer内のデータパタンの開始位置。
LzssOutputStream.createSearchReturn(int,int),
LzssOutputStream.NOMATCH
public int search(int position,
int lastPutPos)
LzssSearchMethod 内の searchposition - TextBuffer内のデータパタンの開始位置。lastPutPos - 最後に登録したデータパタンの開始位置。
LzssOutputStream.createSearchReturn(int,int),
LzssOutputStream.NOMATCHpublic void slide()
LzssSearchMethod 内の slidepublic int putRequires()
LzssSearchMethod 内の putRequires
|
LHA Library for Java | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||