一、赫夫曼解码的思路
- 赫夫曼编码压缩后的字节数组先转成赫夫曼编码对应的二进制的字符串
- 把字符串按照指定的赫夫曼编码进行解码,解析成原来的字符串
示例需求:先把字符串进行赫夫曼编码,在把赫夫曼编码的结果进行赫夫曼解码。
注:测试类中用到的赫夫曼编码工具类 参考此链接 https://blog.csdn.net/li1325169021/article/details/108720523
1、创建赫夫曼解码 工具类
package com.rf.springboot01.dataStructure.huffmanDecode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @description: 赫夫曼解码 工具类
* @author: xiaozhi
* @create: 2020-09-24 22:24
*/
public class huffmanDecodeUtil {
/**
* @Description: 完成对赫夫曼编码的解码
* @Param: huffmanCodes 赫夫曼编码表 map
* huffmanBytes 赫夫曼编码得到的字节数组
* @Author: xz
* @return:
* @Date: 2020/9/24 22:26
*/
public static byte[] decode(Map huffmanCodes, byte[] huffmanBytes) {
//1一、 将赫夫曼编码得到的字节数组 转换成对应的 二进制的字符串 , 形式 1010100010111...
StringBuilder stringBuilder = new StringBuilder();
//将byte数组转成二进制的字符串
for(int i = 0; i 100 100->a
}
//三、创建要给集合,存放byte
List list = new ArrayList();
// i可以理解成就是索引,扫描 stringBuilder
for(int i = 0; i
关注
打赏
热门博文
- Netty——网络编程 NIO(Selector处理accept事件)代码示例
- CompletableFuture异步编排(多任务组合)
- CompletableFuture异步编排(线程串行化代码示例)
- CompletableFuture异步编排(handle最终处理)
- CompletableFuture异步编排(计算完成回调代码示例)
- hutool工具导出excel代码示例
- java 获取音频、视频文件时长代码示例
- PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)
- Rabbitmq与Erlang安装包下载图解
- idea2021.1版本SpringBoot项目日志的说明及使用