How to convert an ArrayList containing Integers to primitive int array?

前端 未结 18 1581
情书的邮戳
情书的邮戳 2020-11-22 11:23

I\'m trying to convert an ArrayList containing Integer objects to primitive int[] with the following piece of code, but it is throwing compile time error. Is it possible to

18条回答
  •  礼貌的吻别
    2020-11-22 11:59

    You can convert, but I don't think there's anything built in to do it automatically:

    public static int[] convertIntegers(List integers)
    {
        int[] ret = new int[integers.size()];
        for (int i=0; i < ret.length; i++)
        {
            ret[i] = integers.get(i).intValue();
        }
        return ret;
    }
    

    (Note that this will throw a NullPointerException if either integers or any element within it is null.)

    EDIT: As per comments, you may want to use the list iterator to avoid nasty costs with lists such as LinkedList:

    public static int[] convertIntegers(List integers)
    {
        int[] ret = new int[integers.size()];
        Iterator iterator = integers.iterator();
        for (int i = 0; i < ret.length; i++)
        {
            ret[i] = iterator.next().intValue();
        }
        return ret;
    }
    

提交回复
热议问题