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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация массива 
:(
    Опции темы
TrivialCore
Дата 29.12.2004, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так. Инициализируем массив:
Код
int[] array = new int[1000000];
Массив изначально заполнен нулями. А так как в куче на месте массива до этого мог находится любой мусор, вывод, что инициализация - не просто выделение места для массива, а также заполнение его нулями.

А если я хочу изначально получать массив, заполненный, скажем, единицами. Получается, что при выполнении мы проходим массив два раза: сначала заполняем нулями, потом единицами.

Как избежать такое расточительство?
PM MAIL   Вверх
Domestic Cat
Дата 29.12.2004, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Никак. С другой стороны, не такое уж это и расточительство smile


--------------------

PM   Вверх
igon
Дата 29.12.2004, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

int[] array = {1,1,1.....1,1}
smile



--------------------
Хотите поговорить об этом?
PM   Вверх
TrivialCore
Дата 29.12.2004, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Domestic @ 29.12.2004, 17:02)
С другой стороны, не такое уж это и расточительство
А если массив огромный? (примерно 1024*768)

igon, ну давай, ты мне столько единичек пропишешь, заюзаю с удовольствием =)

ЗЫ Hint: Если возьмешься писать, вместо единички сразу константу подставляй smile
PM MAIL   Вверх
Domestic Cat
Дата 29.12.2004, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата
А если массив огромный? (примерно 1024*768)


Ну и что smile Ну займет это 30 миллисекунд, причеm учти что из них на "ненужный" пробег по индексам массива уйдет миллисекунд 5-10. Если бы инициализация массива былa реализована
скажем так:
int[][] a = new int[1024][768] := {1};
тo выгода былa бы оt силы несколькo мс: все равно прi инициализации пришлось бы хранить значения обеих индексов (просто таk ты их саm указываешь как переменные в памят,и, а там бы они сидели в регистрах), приращать их, и т п; делать фактически то же самоe.




--------------------

PM   Вверх
xaoc2
Дата 29.12.2004, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что это за ":=" что то не припомню оператора и JBuilder ругается.
PM MAIL   Вверх
Domestic Cat
Дата 29.12.2004, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Я ж писал:
Цитата
Если бы инициализация массива былa реализована

имея в виду любую конструкцию в которой всем элементам массива присваиваеттся одно и то же значение.
Подобная конструкция есть например в HLA.



--------------------

PM   Вверх
xaoc2
Дата 29.12.2004, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Извини я думал речь шла о производительности в рамках имеющихся вариантов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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