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

问题:

这类似于这个问题:
 How to convert int[] to Integer[] in Java?
我是Java的新手如何在Java中将List<Integer>转换为int[]?我很困惑,因为List.toArray()实际上返回了一个Object[],可以转换为Integer[]int[]
现在我正在使用循环:

int[] toIntArray(List list){
int[] ret = new int[list.size()];
for(int i = 0;i < ret.length;i++) ret[i] = list.get(i); return ret; } [/code] 我相信有更好的方法来做到这一点。

回答:

不幸的是,由于Java处理原始类型,拳击,数组和泛型的本质,我不相信真的有一种更好的方法。尤其是:

  •  由于没有从Integerint的转换,List<T>.toArray将无法正常运行
  • 您不能将int用作泛型的类型参数,因此have将成为int特定的方法(或使用反射来做恶作剧的方法)。

我相信有一些图书馆拥有所有原始类型的这种方法的自动生成版本(也就是每个类型都有一个模板)。这很丑陋,但是我很害怕
即使Arrays类在泛型到达Java之前出现,如果今天引入了所有可怕的重载(假设您要使用原始数组),它仍然必须包含所有可怕的重载。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to convert List to int[] in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

69 − 66 =