我使用UUID.toString()将大量的Java行作为行存储到HashMap中。由于数据非常庞大,很快就会抛出OutOfMemoryError。现在我正在考虑一种紧凑的方式来表示UUID,最好是像long这样的形式,然后我可以很容易地用该long表示重新构造UUID。这个是可能的吗?
发布于 2013-01-15 01:45:58
UUID本质上是一个数字,但它是一个128位的数字,它的大小是java长度的两倍。您可以使用BigInteger (这可能不比将UUID存储为字符串更节省空间),也可以将UUID封装在一个包含两个长字符的对象中-一个用于前64位,一个用于后64位。
给定UUID 550e8400-e29b-41d4-a716-446655440000,您可能希望创建两个长整形,一个包含数字0x550e8400e29b41d4,另一个包含数字0xa716446655440000。
https://stackoverflow.com/questions/14323653
复制相似问题