Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 18:18   #1
videolord
Пользователь
 
Аватар для videolord
 
Регистрация: 23.02.2011
Сообщений: 28
По умолчанию как можно передать массив по ссылке в функцию в java?

Привет всем!
приведу пример
вот функция fill заполняет массив a и извлекает 3-элемент

Код:
public static int fill(int[] a){ 
Arrays.fill(a, -3);
return a[2]; 
}
а потом вызываю эту функцию но после вызова массив каким то образом заполняется,а мне так не хочется!Каким образом можно избежать?
в С++ делается через указателей и без проблем

Код:
void main(String args) 
{ 
int[] a={3,4,56,6,7,8};
int b3=fill(a); 
System.out.println(Arrays.toString(a));
}
вывод
Код:
[-3, -3, -3, -3, -3, -3] !
videolord вне форума Ответить с цитированием
Старый 03.11.2011, 18:21   #2
franktan
Новичок
Джуниор
 
Регистрация: 03.11.2011
Сообщений: 1
По умолчанию

Непонятно.
Дело в методе Array.fill(a, -3)? Он же и заполняет весь массив одинаковыми элементами соответств. второму параметру "-3".

Если не хотите затирать массив, создайте другой методом:

static int[] copyOf(int[] original, int newLength);

Copies the specified array, truncating or padding with zeros (if necessary) so the copy has the specified length.

И используйте его для Array.fill(). Новый массив созданный в методе собирается сборщиком мусора и его имя можно использовать в других методах.

Последний раз редактировалось franktan; 03.11.2011 в 18:24.
franktan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать Динамический массив в функцию? RainCat Помощь студентам 4 13.04.2011 11:25
Как передать указатель на функцию в функцию WIN32APIist Общие вопросы C/C++ 1 27.01.2011 10:35
Как в Си# передать в функцию объект по значению? vedro-compota Общие вопросы .NET 7 17.01.2011 19:02
Как передать объект в функцию? BadProgrammer Общие вопросы C/C++ 4 06.11.2010 11:39
Как передать в функцию указатель на String avd Общие вопросы C/C++ 6 06.06.2010 17:52