将ArrayList <Integer>转换为int []的最快方法

Sop*_*ner 3 java arrays int arraylist

可能重复:
如何在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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 5

最快的方法是不首先使用a 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);
Run Code Online (Sandbox Code Playgroud)

  • http://trove4j.sourceforge.net/javadocs/gnu/trove/list/array/TIntArrayList.html如果你不想包含一个额外的库,那么实现起来很简单. (2认同)

RP-*_*RP- 5

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

public convert(List<Integer> list) {
 int[] ar = Ints.toArray(list); //Ints is the class from Guava library
}
Run Code Online (Sandbox Code Playgroud)