3

可能重复:
如何在 Java 中将 List<Integer> 转换为 int[]?

在 Java 中,下面是最快的解决方案:

public convert(ArrayList<Integer> IntegerList) {

    int s = IntegerList.size();
    int[] intArray = new int[s];
    for (int i = 0; i < s; i++) {
        intArray[i] = IntegerList.get(i).intValue();
    }
}

?

4

4 回答 4

5

我想不出比现在使用普通 java 更好的解决方案。但是,如果您使用Guava,您可能可以简化它。

public convert(List<Integer> list) {
 int[] ar = Ints.toArray(list); //Ints is the class from Guava library
}
于 2012-08-14T13:00:11.110 回答
5

最快的方法是一开始就不要使用ArrayList<Integer>。尝试TIntArrayList使用哪个包装 int[],或者int[]从一开始就使用 a。

如果您出于某种原因必须使用 ArrayList 并且无法修复它,那么您需要一种可行且性能不那么重要的方法。

int[] ints = new int[list.size()];
for(int i=0, len = list.size(); i < len; i++)
   ints[i] = list.get(i);
于 2012-08-14T12:55:38.887 回答
2
public void convert(ArrayList<Integer> IntegerList) {
        int[] intArray = new int[IntegerList.size()];
        int count = 0;
        for(int i : IntegerList){
            intArray[count++] = i;
        }
 }

更新: 问:但是 foreach 循环是否比常规 for 循环更快/更好/不同?
A.这里

于 2012-08-14T12:59:15.967 回答
0
 Integer[] intArray = IntegerList.toArray(new Integer[IntegerList.size()]);
于 2012-08-14T12:50:13.690 回答