当前位置: 首页 > 面试题库 >

创建原始int列表?

慕佑运
2023-03-14
问题内容

有没有办法在Java中创建原始int或任何原始类型的列表,如下所示?

List<int> myList = new ArrayList<int>();

看来我能做到 List myList = new ArrayList();

并将“ int”添加到此列表中。但这意味着我可以在此列表中添加任何内容。

我唯一的选择是创建一个int数组并将其转换为一个列表或创建一个Integer对象的列表吗?


问题答案:

在Java中,任何变量的类型都是原始类型或引用类型。泛型类型参数必须是引用类型。由于基元不扩展,Object因此它们不能用作参数化类型的泛型类型参数。

而是使用Integer作为包装器的类int

List<Integer> list = new ArrayList<Integer>();

如果您使用的是Java 7,则可以使用菱形运算符简化此声明:

List<Integer> list = new ArrayList<>();

在Java中使用自动装箱时,原始类型intInteger在必要时变为。

自动装箱是Java编译器在原始类型及其对应的对象包装器类之间进行的自动转换。

因此,以下内容是有效的:

int myInt = 1;
List<Integer> list = new ArrayList<Integer>();
list.add(myInt);

System.out.println(list.get(0)); //prints 1


 类似资料:
  • 我阅读了这个问题的答案:Java 8在使用流“过滤器”和“收集”后会创建一个新的列表吗? 但这不太符合我的经验...我想。我只是想确保我清楚情况。 考虑以下代码(可以在https://www . tutorialspoint . com/compile _ Java _ online . PHP上运行): 我期望的结果如下: 但我得到的实际结果是: 由于某种原因,当我在< code > hasti

  • 我是谷歌协议缓冲区的新手,并试图通过一个原型消息在java中建模一个原始数组。 目前我正在使用此原型文件: 它编译为一个java类,其中包含一个<代码>列表 我的应用程序必须保存数百万个int值,为了节省内存,我决定使用int而不是Integer。有没有一种方法可以用数据结构在java类中编译protobuf消息描述? 不幸的是,我在协议缓冲区语言指南(proto3)中找不到任何内容。在如何在pr

  • 假设我有一个包含数十亿个对象的列表,其中包含多个字段,我需要从这些满足特定条件的对象中收集一个int字段 因为可能有n个项目(动态长度数据),所以我不能直接在维度设置为某个值的基本int[]下收集它们 例如:——不起作用 因为它会保留和浪费大量内存,所以我需要像linkedlist这样的动态收集数据结构。但它们的问题是,当我对int值进行操作时,它们会导致很多不必要的自动装箱和非装箱 收集它们的最

  • 问题内容: 我希望能够构造一个原始的HTTP请求并使用套接字发送它。显然,您希望我使用urllib和urllib2之类的东西,但我不想使用它。 它必须看起来像这样: 显然,您还必须请求页面/文件并获取和发布参数 问题答案: 您需要了解的大多数内容都在HTTP / 1.1规范中,如果您想推广自己的HTTP实现,则应该进行以下研究:http : //www.w3.org/Protocols/rfc26

  • 问题内容: 假设我有一些无法访问原始PHP创建的数组的源输出: 现在,我想输入该数据,并使算法重新创建它正在打印的原始数组,以便可以将其用于自己的应用程序。 目前,我正在考虑a 和regex语句来提取数据并将其适当放置。在我进一步介绍之前,有没有一种更简单的方法,通过已经编写的代码或php插件为我准备好了呢? 问题答案: 不是我的代码,请在注释中找到:print_r’Matt ‘是所有者

  • 我已经创建了一个proto文件,其中包含我打算生成的REST Web服务的所有必要消息和rpc函数。使用proc-gen-swagger插件,我设法将该proto文件编译成一个swagger.json文件,一切似乎都很好,除了两件事,我似乎无法解决。 > swagger.json文件中的所有定义都以我的原始文件包的名称为前缀。有没有办法摆脱这个? 我的消息的所有字段都是“可选的”。它们没有被明确指