我正在设置一个哈希函数,它接受一个对象的MD5并对应对象的前四个字节以防止冲突。这些对象可能非常大,所以我宁愿避免序列化整个对象。我能做到这一点的空间/时间最有效的方法是什么?
我一直在看ObjectOutputStream,虽然看起来有部分写入功能,但似乎要求我已经将对象转换为字节数组。
答案 0 :(得分:2)
我正在设置一个哈希函数,它接受一个对象的MD5并对应对象的前四个字节以防止冲突。
但是,添加对象的前四个字节 将不会 来防止冲突。它们并不是唯一的。 MD5几乎肯定足够强大。
这些对象可能非常大,所以我宁愿避免序列化整个对象。我能做到这一点的空间/时间最有效的方法是什么?
我一直在关注ObjectOutputStream,虽然看起来有部分写入函数,但似乎要求我已经将对象转换为字节数组。
您不会轻易通过序列化获取对象的前四个字节,因为首先要导航流标题,序列化协议标记等。不是说有任何意义。
重新评论,“防止碰撞”和“节省空间”是相反的目标。
你不需要这个。