Приведите ArrayList обёрток к соответствующему массиву примитивов - PullRequest
3 голосов
/ 11 июля 2011

Я использую ArrayList с классом-оболочкой Short .
После добавления некоторых значений я хочу получить массив примитивов, но, похоже, что нет никакого способа сfunction toArray(Object[] array), потому что ей нужен Array с классом-оберткой.

Есть ли другой способ без использования for или чего-то подобного?

Ответы [ 3 ]

5 голосов
/ 11 июля 2011

Apache Commons / Lang имеет класс ArrayUtils , который определяет эти методы.

  • Все методы с именем toObject() конвертируют из примитивного массива в массив-обертку.
  • Все вызываемые toPrimitive() преобразуют из массива объекта-оболочки в примитивный массив

Я думаю, вам нужно ArrayUtils's toPrimitive()

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

Преобразует массив шортов объектов в примитивы.

2 голосов
/ 11 июля 2011

Попробуйте org.apache.commons.lang.ArrayUtils toPrimitive(...) метод.

1 голос
/ 11 июля 2011

Вы можете заполнить массив самостоятельно:

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

Обратите внимание, что я использую автобокс в строке назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...