如何在Java中将List <Integer>转换为int []?

我是Java新手。我怎么能转换List<Integer>int[]Java中?我很困惑,因为List.toArray()实际上返回了一个Object[],可以将其强制转换为nether Integer[]int[]

现在,我正在使用循环来做到这一点:

int[] toIntArray(List<Integer> list){

int[] ret = new int[list.size()];

for(int i = 0;i < ret.length;i++)

ret[i] = list.get(i);

return ret;

}

我敢肯定有更好的方法可以做到这一点。

回答:

不幸的是,我不相信有真的是这样做由于Java的处理基本类型,拳击,数组和仿制药的性质的更好的方法。尤其是:

  • List<T>.toArray无法运作,因为没有从转换Integerint
  • 你不能将其int用作泛型的类型参数,因此它必须是int特定于-的方法(或使用反射进行令人讨厌的欺骗的方法)。

    我相信有些库具有针对所有原始类型的这种方法的自动生成版本(即,有为每种类型复制的模板)。这很丑,但是恐怕就是这样

即使Arrays该类在泛型到达Java之前就出现了,但如果今天引入了它,那么它仍然必须包括所有可怕的重载(假设你要使用基本数组)。

以上是 如何在Java中将List &lt;Integer&gt;转换为int []? 的全部内容, 来源链接: utcz.com/qa/431572.html

回到顶部