Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> преобразование "Double[]" to "double[] 
:(
    Опции темы
transserg
Дата 26.2.2011, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 8.8.2009

Репутация: нет
Всего: нет



Доброго вечера всем. столкнулся с проблемой. Не могу выполнить преобразование из Double[] в double[] и наоборот. как это можно сделать без цикла?
PM MAIL   Вверх
_Y_
Дата 26.2.2011, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



А разве можно преобразовать без цикла? Это вроде совершенно разные вещи: double - примитив, а Double - класс. Даже если есть библиотека это делающая, внутри себя она скорее всего цикл и использует. 

Или я чего-то не понимаю?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Connie
Дата 27.2.2011, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 1
Всего: 9



Double[] - ссылка на массив значений типа Double
double[] - ссылка на массив значений типа double

одно в другое не преобразуется, а вот так можно
Код

Double[] arrD = {new Double(3.15),new Double(9.81)};
double [] arrd = new double[2];//Ссылка на массив размером два элемента, которые еще не инициализированы
for(int i=0;i<addD.size;i++){
   arrd[i] = arrD[i];
}

PM MAIL WWW   Вверх
_sten_
Дата 1.3.2011, 00:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 29.9.2006

Репутация: нет
Всего: 3



org.apache.commons.lang.ArrayUtils.toPrimitive(arrD);

Одной строкой smile
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
jk1
Дата 1.3.2011, 03:19 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Одной строкой


А внутри у этого метда все равно цикл:

Код

2622    public static double[] toPrimitive(Double[] array) {
2623        if (array == null) {
2624            return null;
2625        } else if (array.length == 0) {
2626            return EMPTY_DOUBLE_ARRAY;
2627        }
2628        final double[] result = new double[array.length];
2629        for (int i = 0; i < array.length; i++) {
2630            result[i] = array[i].doubleValue();
2631        }
2632        return result;
2633    }


Как уже говорилось выше, без цикла тут обойтись нельзя.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
_sten_
Дата 1.3.2011, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 29.9.2006

Репутация: нет
Всего: 3



ну да, только самому его писать не надо
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
_Y_
Дата 1.3.2011, 23:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(_sten_ @ 1.3.2011,  22:46)
ну да, только самому его писать не надо

Сравниваем два кода - у меня даже короче получилось smile 
Код

arrd=org.apache.commons.lang.ArrayUtils.toPrimitive(arrD);
for(int i=0;i<arrD.length;i++)arrd[i]=arrD[i];

Впрочем, если длину массива arrd надо сначала объявить, то то прав не несколько буквочек smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
_sten_
Дата 6.3.2011, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 29.9.2006

Репутация: нет
Всего: 3



_Y_, вы что то слышали о переиспользовании кода?

org.apache.commons.lang.ArrayUtils.toPrimitive(arrD);
написан и протестирован программистами из Apache и заслуживает доверия, а ваш вариант не протестирован....

во вторых, ваш код выполняет только часть поставленного задания. 

в третьих, какой вариант проще читать(и понять что он делает)?

не говоря уже об экономии на фигурных скобках....


единственная проблема org.apache.commons.lang.ArrayUtils.toPrimitive(arrD); то что это из third-party библиотеки, которую не всегда есть возможность подключить....

Это сообщение отредактировал(а) _sten_ - 6.3.2011, 11:27
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
_Y_
Дата 6.3.2011, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



 smile дискуссия похоже перешла в полнейший оффтоп. Ну и ладно. Воскресенье все-таки smile
Цитата(_sten_ @ 6.3.2011,  11:27)
_Y_, вы что то слышали о переиспользовании кода?

Спасибо. Улыбнуло. Код-то в одну строку smile

Цитата(_sten_ @ 6.3.2011,  11:27)
....написан и протестирован программистами из Apache и заслуживает доверия, а ваш вариант не протестирован....

Тоже улыбнуло. smile 

Цитата(_sten_ @ 6.3.2011,  11:27)
в третьих, какой вариант проще читать(и понять что он делает)?

Мой, конечно, поскольку он использует только самые базовый синтаксис Java, не требуя знания сторонних библиотек. 

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

Цитата(_sten_ @ 6.3.2011,  11:27)
единственная проблема ... third-party библиотеки, которую не всегда есть возможность подключить....

Вот об этом я даже и не подумал сам; уж точно должен согласиться. Библиотеки ИМХО надо прикручивать когда они нужны, а не из любви к искусству.

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.