【发布时间】:2014-11-09 01:48:57
【问题描述】:
我需要有一个容器来存放我在文件上写入的几个整数,但它必须是 int 而不是 Integer 类型,以减少占用的最小字节数(32 位)。我知道Arraylists 和Vectors 都不会采用 int 那么有没有办法做到这一点?
【问题讨论】:
-
您的部分问题令人困惑。如果您将这些整数写入文件,如果它们在内存中是 int 或 Integer 类型,有什么区别?
-
在我看来,您将某事物所占用的 RAM 量与它可以有效容纳的位数混淆了。 Integer 绝对会比 int 占用更多的 RAM,但它仍然只会给你 32 位信息(不计算它是否为空)。当您将该信息传输到文件、
byte[]、网络缓冲区或其他任何东西时——不管它占用多少 RAM,重要的是它只有 32 位信息。Integer只不过是一个具有一个字段的简单类,即int value。 -
@dili 它们确实占用了不同数量的内存,我再次问:这有什么关系? 在 RAM 中存储这些对象所需的内存量与您选择在文件中存储 32 位值的方式完全没有关系。 所以您需要告诉我们为什么
Integer不适用于您,特别是或以其他方式澄清您的问题。另请参阅XY Problems。 -
@dili 如果这就是您需要知道的全部内容,那么您实际上并没有阅读我链接到的文档,其中指出
Integer是一个简单的类,其中一个int字段实际上在第一个句子。您不清楚并拒绝自己进行最少量的研究,这浪费了我们所有的时间。 -
@dili 该网站不用于辅导。在您自己尝试过某些事情并遇到具体问题后,该站点旨在通过明确的问题陈述来帮助解决具体问题。请参阅 stackoverflow.com/help/how-to-ask 和 meta.stackoverflow.com/questions/261592/…。这个网站上的一个有效问题是,“我正在尝试做 X。当我使用
Integer而不是int时,我遇到了 ABC 问题。我尝试 Y 来解决它无济于事。我该如何解决这个问题?”从您的问题来看,您似乎什么都没尝试。
标签: java integer int containers