将包装器的Array ArrayList转换为相应的基元数组

时间:2011-07-11 11:01:57

标签: java casting arraylist

我使用包装类 Short ArrayList
添加一些值后,我想获得原始数组,但似乎没有办法使用函数toArray(Object[] array),因为它需要一个带有包装类的 Array

是否有其他方式没有使用for或类似的东西?

3 个答案:

答案 0 :(得分:5)

Apache Commons / Lang有一个定义这些方法的类ArrayUtils

  • 所有名为toObject()的方法都从原始数组转换为包装数组。
  • 所有被调用的toPrimitive()从包装器对象数组转换为原始数组

我认为,您需要ArrayUtils's toPrimitive()

public static short[] toPrimitive(Short[] array)
  

将对象Shorts数组转换为基元。

答案 1 :(得分:2)

尝试org.apache.commons.lang.ArrayUtils的{​​{1}}方法。

答案 2 :(得分:1)

您可以自己填充阵列:

ArrayList<Short> shorts = ...;
short shortArray[] = new short[shorts.size()];
for (int i = 0; i < shorts.size(); i++)
   shortArray[i] = shorts.get(i);

请注意,我在分配行中使用了自动装箱。