如何在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
无法运作,因为没有从转换Integer
为int
- 你不能将其int用作泛型的类型参数,因此它必须是
int
特定于-的方法(或使用反射进行令人讨厌的欺骗的方法)。我相信有些库具有针对所有原始类型的这种方法的自动生成版本(即,有为每种类型复制的模板)。这很丑,但是恐怕就是这样
即使Arrays
该类在泛型到达Java之前就出现了,但如果今天引入了它,那么它仍然必须包括所有可怕的重载(假设你要使用基本数组)。
以上是 如何在Java中将List <Integer>转换为int []? 的全部内容, 来源链接: utcz.com/qa/431572.html