创建一个原始 int 列表?

新手上路,请多包涵

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

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

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

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

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

原文由 Susie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

在 Java 中,任何变量的类型要么是原始类型,要么是引用类型。泛型类型参数必须是引用类型。由于原语不扩展 Object 它们不能用作参数化类型的泛型类型参数。

而是使用 Integer 类,它是 int 的包装器:

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

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

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

使用 Java 中的自动装箱,原始类型 int 将在必要时变为 Integer

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

所以以下是有效的:

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

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

原文由 Kevin Bowersox 发布,翻译遵循 CC BY-SA 4.0 许可协议

不,在使用 Java 集合框架时,没有任何集合可以包含原始类型。

但是,还有其他支持原始类型的 java 集合,例如: TroveColtFastutilGuava

以下是使用 Trove Library 时带有整数的数组列表的示例:

  TIntArrayList list= new TIntArrayList();

与来自 Java Collections 的 Integers ArrayList 相比,此列表的性能要好得多,因为不需要对相应的 Integer Wrapper Class 进行自动装箱/拆箱。

原文由 Mike B 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题