Как преобразовать массив в массив с другим типом примитива - PullRequest
3 голосов
/ 14 апреля 2010

Может ли кто-нибудь выполнить код простым способом?

float[] floats = {...}; // create an array
// Now I want to create a new array of ints from the arrays floats
int[] ints = ????;

Я знаю, что могу просто привести элемент за элементом к новому массиву. Но возможно ли это по-простому?

Спасибо

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010

Я почти уверен, что вы не можете сделать это другим способом для примера с плавающей точкой, кроме индивидуального приведения каждого элемента.

Я быстро прогуглил это, что вызвало у кого-то похожую проблему, которая более или менее подтверждает то, что я сказал:

http://www.java -forums.org / продвинутый-Java / 11255-типа литейно-array.html

Я бы порекомендовал просто индивидуально кастовать элементы. Это гарантированно работает и будет легко понять для будущего разработчика. В любом случае, любой код «бросить все сразу», вероятно, будет делать это негласно.

0 голосов
/ 14 апреля 2010

Вы не можете сделать это напрямую. Исходя из контекста того, как этот массив создается в используемом, вы можете рассмотреть возможность использования массива класса-оболочки, где ваш установщик принимает число с плавающей запятой, а получатель возвращает целое число.

Это было бы идеально, если это практично в вашей ситуации, потому что вы можете скрыть преобразование от клиентского кода.

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