ハフマン エンコーディングで作成されたバイト ファイルをデコードしています。バイトを文字列に変換し、ハフマン ツリーによって与えられた値を検索します。元のファイルのエンコード値とバイト値を含むハッシュ テーブルがあります。これが私のコードです。
for(int i = 0, j = 1; j <= encodedString.length(); j++){
if(huffEncodeTable.get( encodedString.substring(i, j)) != null){
decodedString.append(huffEncodeTable.get( encodedString.substring(i, j)));
i = j;
}
それは非常に単純で、すべての文字列を反復するループです。問題は、文字列が大きすぎる場合に発生します-100KBを超えるサイズの圧縮ファイルを使用すると、それらを処理するのに非常に長い時間がかかります。このプロセスをより高速な方法で行う方法、またはエンコード値を hastable の代わりに別の構造に格納する方がよい場合。
huffEncodeTable -> ハッシュテーブル
encodedString -> ハフマン値を持つ文字列
decodedString -> 元のファイルの元のバイトを表す文字列