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

时间:2012-08-14 12:46:12

标签: java arrays arraylist int

  

可能重复:
  How to convert List<Integer> to int[] in Java?

在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 个答案:

答案 0 :(得分:5)

最快的方法是首先不使用ArrayList<Integer>。尝试包装int []的TIntArrayList,或从头开始使用int[]

如果由于某种原因必须使用ArrayList而无法修复它,则需要一种有效且性能不太重要的方法。

int[] ints = new int[list.size()];
for(int i=0, len = list.size(); i < len; i++)
   ints[i] = list.get(i);

答案 1 :(得分:5)

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

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

答案 2 :(得分: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. here

答案 3 :(得分:0)

 Integer[] intArray = IntegerList.toArray(new Integer[IntegerList.size()]);