Java:自动装箱整数对象数组,从LinkedList.toArray()转换为int

Java:自动装箱整数对象数组,从LinkedList.toArray()转换为int,java,casting,autoboxing,Java,Casting,Autoboxing,我希望使用与以下类似的代码: int letterIndex[]; LinkedList<Integer> letterList; 但是,这是不允许的,显然转换为int[]时,转换为int[]的转换不会自动装箱。如果不将letterIndex声明为Integer[]而不是int[],我如何实现等效性?您必须创建一个新数组,并从Integer[]数组中分配每个值 Apache有ArrayUtils.toPrimitive(wrapperArray)为什么要使用原语 你能把它改成:

我希望使用与以下类似的代码:

int letterIndex[];
LinkedList<Integer> letterList;

但是,这是不允许的,显然转换为
int[]
时,转换为
int[]
的转换不会自动装箱。如果不将
letterIndex
声明为
Integer[]
而不是
int[]
,我如何实现等效性?

您必须创建一个新数组,并从
Integer[]
数组中分配每个值


Apache有
ArrayUtils.toPrimitive(wrapperArray)
为什么要使用原语

你能把它改成:


整数[]字母索引;

那么基本上使用ArrayList会更直接吗?“我只是讨厌用它们,因为它们看起来效率太低了。”TurtleToes,这要看情况而定。没有“明显更有效的方法”。但我认为这在大多数情况下都是微观优化。我想我将根据列表的大小动态创建整数数组,并逐步转换每个索引。谢谢你的帮助。@Bozho,事实上,很难想象这样的任务能进入一个流行的图书馆。@bestsss-我不明白你的意思:)他明确表示他不想那样做。你是对的。在实际应用程序中,我可能会使用整数[]数组。然而,我对Java还相当陌生,我正在探索我能做什么以及如何做的范围。在现实世界的应用程序中,我可能会使用Integer[]数组。这是一个错误的决定在我设计的类中,值被声明为final,因此整数[]数组也可以使用。创建数组的代码位于构造函数中。然而,无论哪种方式,这个类都是毫无意义的,只不过是我在语言上乱翻而已;int[]r=新的int[s];for(int i=0;很明显……但是我在寻找类库提供的东西。不可能获取
java.util.Collection
并将其转换为基本数组。简单地说:泛型类型在运行时不存在(实际上在编译时不存在).要做到这一点,您需要一些带有类似于toArray(集合)签名的方法
if(!letterList.isEmpty()) letterIndex = (Integer[])letterList.toArray();