如何转换包含整数到原始的int数组一个ArrayList? [英] How to convert an ArrayList containing Integers to primitive int array?

查看:106
本文介绍了如何转换包含整数到原始的int数组一个ArrayList?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想转换包含整数一个ArrayList对象,以原始的INT []与下面的一段code,但它抛出编译时错误。是否有可能在Java中转换?

 列表<整数GT; X =新的ArrayList<整数GT;();
INT [] N =(INT [])x.toArray(INT [x.size()]);


解决方案

您可以转换,但我不认为有什么内置的自动做到这一点:

 公共静态INT [] convertIntegers(列表<整数GT;的整数)
{
    INT [] = RET新INT [integers.size()];
    的for(int i = 0; I< ret.length;我++)
    {
        保留由[i] = integers.get(ⅰ).intValue();
    }
    返回RET;
}

(请注意,这将抛出一个NullPointerException异常,如果在其中任一的整数或任何元素

编辑:根据意见,您可能需要使用列表迭代,以避免与列表讨厌的费用,如的LinkedList

 公共静态INT [] convertIntegers(列表<整数GT;的整数)
{
    INT [] = RET新INT [integers.size()];
    迭代器<整数GT;迭代= integers.iterator();
    的for(int i = 0; I< ret.length;我++)
    {
        保留由[i] = iterator.next()的intValue();
    }
    返回RET;
}

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 convert in Java?

List<Integer> x =  new ArrayList<Integer>();
int[] n = (int[])x.toArray(int[x.size()]);

解决方案

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

public static int[] convertIntegers(List<Integer> 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<Integer> integers)
{
    int[] ret = new int[integers.size()];
    Iterator<Integer> iterator = integers.iterator();
    for (int i = 0; i < ret.length; i++)
    {
        ret[i] = iterator.next().intValue();
    }
    return ret;
}

这篇关于如何转换包含整数到原始的int数组一个ArrayList?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆