задачу я решил, однако, в ходе решения, возник вопрос на который я не смог найти ответ, помогите пожалуйста.
Вопрос: как в методе void записать в переданный в качестве параметра массив String, элементы из нового массива созданного в этом методе?
То есть не добавить, а полностью изменить(перезаписать). Ниже код
public static void main(String[] args) {
String[] array = {"Peter", "Anton", "Michle", "1", "0", "50"};
sort(array);
// здесь хотел вывести измененный в методе sort массив array, который
// содержит ТОЛЬКО элементы нового массива
// созданого в методе sort
System.out.println(Arrays.toString(array));
}
public static void sort(String[] array) {
// создаем в методе новый массив
String[] array2 = {"Vasya"};
// ниже очередная неудачная попытка
System.arraycopy(array2, 0, array, 0, array2.length);
// здесь просто выводил для контроля
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(array2));
Arrays.sort(array);
спасибо!
Виталий
18 уровень
помогите пожалуйста разобраться
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
28 февраля 2020, 06:29
А в чем, собственно, проблема?
У тебя как раз и перезаписывает, вместо Пети - Вася.
0
Виталий
29 февраля 2020, 02:52
Спасибо Ксения! Вы, как техподдержка здесь) В том то и дело, что не меняет, а добавляет, я пробовал сделать с помощью метода copyOf ( array = Arrays.copyOf(array2);) однако он не подходит для String, удалить ячейку в массиве нельзя (если я правильно понимаю). С помощью = работает только в самом методе, т.к. (как я прочитал) создается новая ссылка не влияющая на переданный array)
0
Ksenia Volkova Java Developer в DXC Master
29 февраля 2020, 08:36
Как же не меняет? Что у тебя выводит код, который ты тут выложил?
У меня последняя строка вывода (то, что выводит main после sort) выглядит так:
[0, 1, 50, Anton, Michle, Vasya]
То есть вместо Peter - Vasya, и все отсортировано.
Более того, в массив в принципе нельзя ни добавить ячейку, ни убрать. Нельзя изменить размер массива, который был ему указан при создании.
0
Виталий
5 марта 2020, 04:27
Спасибо большое Ксения! Вопрос несколько отвлеченный от темы - что вы думаете о языке Go?
0