压缩文件最基本原理——map实现
2015-08-09 22:47
239 查看
文件压缩的最基本原理:
例:将字符串:String str =
"AAAAABBBBCCCCDDDEEEFFFF"; 算法压缩为:A5B4C4D3E3F4
package main;
import java.util.*;
public class Test {
public static void main(String[]args) {
String str = "AAAAABBBBCCCCDDDEEEFFFF";
Map<String, Integer> maps= new TreeMap<String, Integer>();
List resList = new ArrayList();
for (int i = 0; i <str.length(); i++) {
String temp = str.substring(i,i + 1);
Integer count =maps.get(temp);
if (count == null) {
count = 1;
} else {
count++;
//System.out.println(count);
}
maps.put(temp, count);
}
for(String key : maps.keySet()){
System.out.print(key+maps.get(key));
}
}
}
例:将字符串:String str =
"AAAAABBBBCCCCDDDEEEFFFF"; 算法压缩为:A5B4C4D3E3F4
package main;
import java.util.*;
public class Test {
public static void main(String[]args) {
String str = "AAAAABBBBCCCCDDDEEEFFFF";
Map<String, Integer> maps= new TreeMap<String, Integer>();
List resList = new ArrayList();
for (int i = 0; i <str.length(); i++) {
String temp = str.substring(i,i + 1);
Integer count =maps.get(temp);
if (count == null) {
count = 1;
} else {
count++;
//System.out.println(count);
}
maps.put(temp, count);
}
for(String key : maps.keySet()){
System.out.print(key+maps.get(key));
}
}
}
相关文章推荐
- 【我的技术我做主】IT屌丝DIY ESXI虚拟化服务器再度升级ESXI6.0
- cocos2dx,elipse,Errors occurred during the build,java.lang.NullPointerException打包Android错误
- android学习笔记(7)AbsoluteLayout+FrameLayout+RelativeLayout+TableLayout四大布局方式
- android ftp多线程多任务下载时的listview滑动列表错乱解决方法
- jvm优化检测多线程竞争
- UIAlertView的一些使用
- AMD 和 CMD
- Android小记:ViewStub的使用
- 解决sch远程命令找不到JAVA_HOME的问题
- (4.1.28.1)HTTP通信之HttpClinet保持登录状态问题
- View onDraw、dispatchDraw、invalidate和computeScroll介绍
- 之前写的检测mysql 从服务器延迟的脚本
- 深刻理解Docker镜像大小
- 职工管理系统——动态数组实现
- jQuery效果之显示与隐藏
- jvm优化
- 9.Python基础 面向对象的进一步拓展
- FZU 2105-Digits Count(线段树延时标记)
- eclipse的离线svn插件安装方法
- python正则表达式 re (二)split