我尝试做的事情:
我想在 RAM 中存储很多数据。为了更快的访问和更少的内存占用,我需要使用一个结构值数组:
MyStruct[] myStructArray = new MyStruct[10000000000];
现在我想在 MyStruct 中存储一个、两个、三个或四个字节的无符号整数值。但它应该只使用尽可能少的内存量。当我将一个值存储为一个字节时,它应该只使用一个字节,依此类推。
我可以用类来实现它,但这在这里不合适,因为在 64 位系统上,指向对象的指针需要 8 个字节。所以最好为每个数组条目存储 4 个字节。但我只想在需要时存储/使用一/二/三字节。所以我不能使用一些花哨的类。
我也不能使用一个带有一个字节的数组,一个带有两个字节的数组等等,因为我需要值的特殊顺序。而且这些值非常混杂,因此在切换到另一个数组时存储一个额外的引用将无济于事。
不管我只需要存储一个字节,大约 60% 的时间里只需要存储两个字节,大约 25% 的时间里只需要存储三个字节,是否有可能想要或者是唯一的方法来存储一个 4 字节的 uint 数组?