下面是数据压缩的一段代码,如果有不合适的地方,请帮忙纠正,谢谢
public static int[] compress(int[] tmp) {
StringBuffer buffer = new StringBuffer();
int begin = -1;//记录重复数据从哪里开始的
for(int i =0;i < tmp.length;i++){
if(i !=0 && tmp[i] != tmp[i-1])//与上一个元素比较
begin = -1;
//与下一个元素比较
if((i+1)!= tmp.length && tmp[i] == tmp[i+1]){
boolean flag = false;
//重复开始索引
if(begin == -1){
begin = i;
flag = true;
buffer.append(0);
buffer.append(",");
}
if(i !=0 && tmp[i] != tmp[i-1]&&!flag){
buffer.append(i-begin-1);
buffer.append(",");
begin = -1;
}
}else if(-1 != begin&&(i+1)== tmp.length){//最后一个元素
buffer.append(i-begin+1);
}else if(i !=0 && (i+1)!= tmp.length && tmp[i] == tmp[i-1] && tmp[i] != tmp[i+1]){
buffer.append(i-begin+1);
buffer.append(",");
}
//不需要压缩的数据
if( begin == -1){
buffer.append(tmp[i]);
buffer.append(",");
}
}
String[] tmpS = buffer.toString().split(",");
int[] retArray = new int[tmpS.length];
for(int i = 0 ;i< tmpS.length;i++){
retArray[i] = Integer.parseInt(tmpS[i]);
}
return retArray;
}
分享到:
相关推荐
用户可以通过导入这些代码和库,直接在自己的Java项目中实现视频压缩功能。 需要注意的是,视频压缩是一个计算密集型的任务,可能需要高性能的硬件支持。同时,不同的压缩算法会直接影响到压缩质量和文件大小的平衡...
这个压缩包中的“java数据处理代码”很可能包含了一系列用于处理和分析数据的示例程序,可能涵盖了数据挖掘和多线程技术。 首先,让我们详细探讨一下数据处理。数据处理是对原始数据进行转换、清洗、分析和建模的...
在Java编程环境中,...总的来说,Java提供的API使得数据压缩和传输变得简单易行,开发者可以根据自己的需求灵活地组合和扩展这些功能。在实际开发中,理解并掌握这些基本操作,能够帮助我们更高效、稳定地处理数据。
在Java编程环境中,图片压缩和生成缩略图是常见的任务,尤其在处理大量图像数据或者优化网站性能时显得尤为重要。本文将深入探讨如何利用Java进行图片处理,包括压缩和生成缩略图的关键技术。 首先,Java提供了丰富...
在Java开发中,文件的压缩与解压是一项常见的需求,尤其是在处理大量数据或需要传输大文件时。本文将深入解析一个基于Java的简单压缩算法,该算法利用Apache Ant库将整个文件夹压缩成ZIP文档。通过以下内容,我们将...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...
本主题聚焦于“基于Java的数据压缩”,特别是利用哈夫曼树的变种树进行数据编码。以下将深入探讨这一领域的核心概念和实现细节。 哈夫曼编码是一种高效的前缀编码方法,由哈夫曼在1952年提出。它主要用于无损数据...
下面将详细解释文件压缩与解压缩的基本原理、使用场景以及具体的Java代码实现。 ### Java文件压缩:GZIP格式 #### 原理概述 GZIP是一种广泛使用的文件压缩格式,基于Lempel-Ziv编码(LZ77)算法,通过查找重复的...
Java文件压缩与解压缩是Java开发中常见的操作,特别是在数据传输、存储优化和备份场景下。本实践项目提供了源代码和相关论文,帮助开发者深入理解这一主题。在Java中,我们可以利用内置的`java.util.zip`包来实现...
在Java编程中,字符串压缩和文件压缩是常见的数据处理任务,尤其在大数据传输、存储优化等方面扮演着重要角色。本文将深入探讨Java中如何实现字符串和文件的压缩,以及涉及的相关技术。 首先,字符串压缩通常涉及到...
1. Gzip:Gzip是一种广泛使用的数据压缩格式,基于DEFLATE算法(结合了LZ77压缩和霍夫曼编码)。它通常用于单个文件的压缩,支持在线压缩和解压缩,且文件头包含有关压缩文件的信息,如时间戳和文件类型。 2. Zip:...
HUFFMAN编码是一种数据压缩算法,它基于字符频率构建一棵最优的二叉树来进行编码,广泛应用于文本压缩。本节将详细介绍如何在Java中实现HUFFMAN编码以及对文件进行压缩。 首先,我们需要理解HUFFMAN编码的基本原理...
在Java编程语言中,数据压缩和传输是两个关键的概念,特别是在大数据处理、网络通信和存储优化的场景下。本实例提供了Java源码,用于演示如何实现这些功能。 首先,我们来了解一下数据压缩。数据压缩的主要目的是...
- 创建`GZIPOutputStream`,这个流会处理将普通数据压缩成GZ格式的工作。 - 使用缓冲区`byte[] buf`,从`FileInputStream`读取未压缩的数据,并通过`GZIPOutputStream`写入压缩数据。 - 在循环结束后,确保所有...
Java文件分割压缩是一种常见的操作,尤其在处理大数据或者网络传输时非常有用,因为单个大文件可能会导致处理效率低或传输困难。以下是一些相关的Java编程知识点: 1. **文件I/O操作**:在Java中,`java.io`包提供...
由于项目需求,需要在C#中压缩,然后在java里解压缩,或者倒过来,在Java里压缩,C#里解压缩,以下代码经测试验证通过。 关键技术点和体会: 压缩的结果采用Base64编码,方便在Java端或者C#端打印出来调试,也方便...
3. **数据解码**:AWX文件中的气象数据可能以特定的编码格式存在,如浮点数、整数或压缩的像素值。使用`ByteBuffer`的`getFloat()`, `getInt()`等方法解码数据,同时可能需要自定义解码算法来处理特定的编码格式。 ...
【标题】:仿zip压缩软件的java代码 在Java编程中,实现自定义的压缩软件,尤其是模仿ZIP标准,是一项有趣的挑战。ZIP是一种常见的文件格式,用于存储多个文件和目录在一个单一的档案中,通常带有压缩以节省空间。...