这类似于这个问题: How to convert int[] to Integer[] in Java?
我是 Java 新手。如何在 Java 中将a 转换List<Integer>为?int[]我很困惑,因为List.toArray()实际上返回一个Object[],它可以转换为下界Integer[]或int[].
List<Integer>
int[]
List.toArray()
Object[]
Integer[]
现在我正在使用循环来这样做:
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
我相信有些库对所有原始类型都有这种方法的自动生成版本(即,有一个为每种类型复制的模板)。这很丑陋,但恐怕就是这样:(
即使这个Arrays类在泛型进入 Java 之前就已经出现了,但如果它在今天被引入,它仍然必须包含所有可怕的重载(假设你想使用原始数组)。
Arrays