Java 重复字符串数据的最佳无损压缩算法

Java 重复字符串数据的最佳无损压缩算法,java,algorithm,object,compression,Java,Algorithm,Object,Compression,我有一个要压缩的对象Aobj,它包含一个Bobj对象列表 Aobj = { someInt=123; someString = str; someList = [ Bobj1 {key1=xyz,key2=345; }; Bobj2 {key1=abc,key2=123; }; Bobj3 {key1=dsd,key2=323; }; ........ ] } 正如我们看到的,这包含关键字key1、key2的重复

我有一个要压缩的对象Aobj,它包含一个Bobj对象列表

Aobj = {
    someInt=123; someString = str;
    someList = [ 
       Bobj1 {key1=xyz,key2=345; };
       Bobj2 {key1=abc,key2=123; };
       Bobj3 {key1=dsd,key2=323; };
       ........
    ]
}
正如我们看到的,这包含关键字key1、key2的重复。对象Aobj的最佳压缩算法是什么

准则-

  • 最低点
  • 最大压缩比
  • 我唯一想知道的是,我可以使用哪些不同的压缩格式。
    一旦我有一个方便的列表,列出所有算法对这些对象最有效的方法,我们将对所用时间和达到的压缩比的确切指标进行实验。

    您的最低时间和最大压缩标准是冲突的。因此,您只需尝试一系列压缩器,看看时间和压缩比的平衡能让您满意。将提供真正快速的压缩(和惊人的快速解压缩),但不是最佳的压缩比。将为您提供一系列选项,其中时间增加,压缩大小从级别1降低到级别9。将提供更好的压缩,但会花费更长的时间并消耗更多的内存。

    这不正是吗?将重复的字符串合并成一个代码?@OldCurmudgeon是的,我把LZW作为选项之一。我们目前使用ZLIB进行压缩,我在寻找更好的选择,或者LZW的任何抽象形式(编码员我能想到的最抽象的压缩形式是。LZW是指针压缩(“数据压缩的宏模型”),也是。)最好的方式是什么?速度压缩比?通常,“最佳”问题的答案是“自己试试看”。您愿意自己编写,还是重新安排数据格式以提高压缩比?你愿意投入多少时间?您允许压缩机工作多长时间?你的目标压缩比是多少?除非你定义了你的标准,“最佳”是没有意义的。@JimMischel更新了这个问题