我正在解码由霍夫曼编码生成的字节文件,我将字节转换为字符串,然后搜索霍夫曼树给出的值。我有一个哈希表,其中包含原始文件的编码值和字节值。这是我的代码。
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 -> 表示原始文件的原始字节的字符串