我使用Java BitSet
对邮件进行编码。
我的压缩文件大小达到了954kb,但当我BitSet.cardinality()
时,我得到了大约4mb。你能解释一下吗?
答案 0 :(得分:4)
BitSet.cardinality()
返回true
中设置为BitSet
的位数。我想你正在寻找BitSet.size()
。但请记住,它将返回位的数量,而不是 bytes 。
假设在霍夫曼编码之后,您将大约一半的位设置为true
,这意味着您的BitSet
大小应该在BitSet
中大约4.000.000 * 2 = 8.000.000位1}}反过来产生大约1.000.000字节,这相当于你看到的954kb。
这可以解释你的观察。