LHA Library for Java

jp.gr.java_conf.dangan.util.lha
クラス HashDefault

java.lang.Object
  拡張jp.gr.java_conf.dangan.util.lha.HashDefault
すべての実装インタフェース:
HashMethod

public class HashDefault
extends Object
implements HashMethod

試作プログラム ar940528 や LHa for Unix で使用されているハッシュ関数。
gzip で使用されているを参考にしたようだ。

 -- revision history --
 $Log: HashDefault.java,v $
 Revision 1.0  2002/08/05 00:00:00  dangan
 add to version control
 [change]
     HashMethod のインタフェイス変更にあわせてインテフェイス変更。
     コンストラクタで引数チェックを削除。
 [maintanance]
     ソース整備
     タブ廃止
     ライセンス文の修正

 

バージョン:
$Revision: 1.0 $
作成者:
$Author: dangan $

コンストラクタの概要
HashDefault(byte[] TextBuffer)
          ar940528 や LHa for Unix で使用されているハッシュ関数を構築する。
 
メソッドの概要
 int hash(int position)
          ハッシュ関数。
 int hashRequires()
          ハッシュ関数がハッシュ値を生成するために使用するバイト数を得る。
 int tableSize()
          ハッシュテーブルのサイズを得る。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

HashDefault

public HashDefault(byte[] TextBuffer)
ar940528 や LHa for Unix で使用されているハッシュ関数を構築する。

パラメータ:
TextBuffer - LZSS圧縮用のバッファ。 Hash値生成のため読み込み用に使用する。
メソッドの詳細

hash

public int hash(int position)
ハッシュ関数。
コンストラクタで渡された TextBuffer の position からの データパタンの hash値を生成する。

定義:
インタフェース HashMethod 内の hash
パラメータ:
position - データパタンの開始位置
戻り値:
ハッシュ値

hashRequires

public int hashRequires()
ハッシュ関数がハッシュ値を生成するために使用するバイト数を得る。
このハッシュ関数は 3バイトのデータから シフトとXORを使用してハッシュ値を生成するため、 このメソッドは常に 3 を返す。

定義:
インタフェース HashMethod 内の hashRequires
戻り値:
常に 3

tableSize

public int tableSize()
ハッシュテーブルのサイズを得る。
このハッシュ関数は 0x0000 〜 0x7FFF のハッシュ値を生成するため、 このメソッドは常に 0x8000(32768) を返す。

定義:
インタフェース HashMethod 内の tableSize
戻り値:
常に 0x8000(32768)

LHA Library for Java

バグやドキュメントの誤りの報告は作者宛てにお願いします。
ドキュメント内に含まれる社名、製品名については一般に各社の商標または登録商標です。
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.