package com.javarush.task.task07.task0728;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
/*
В убывающем порядке
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[5];
for (int i = 0; i < 5; i++) {
array[i] = Integer.parseInt(reader.readLine()); // 3 2 1 4 5
}
sort(array);
for (int x : array) {
System.out.println(x);
}
}
public static void sort(int[] array) {
int[] arraySort = new int[5];
System.out.println(Arrays.toString(arraySort)); //[0, 0, 0, 0, 0]
arraySort = array;
System.out.println(Arrays.toString(arraySort)); //[3, 2, 1, 4, 5]
Arrays.sort(arraySort);
System.out.println(Arrays.toString(arraySort)); //[1, 2, 3, 4, 5]
for (int i=0; i<5; i++){
array[i]=arraySort[(arraySort.length-1-i)];
}
System.out.println(Arrays.toString(arraySort)); //[5, 4, 3, 4, 5]
}
}
В строке 16 я ввожу с клавиатуры значения 3 2 1 4 5 - почему в строке 36 получается 5 4 3 4 5???
Никак не могу понять логики изменения массива arraySort и вообще как он меняется если я его не трогаю?catalust
19 уровень
Почему меняется массив arraySort?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
25 мая 2021, 20:12полезный
arraySort и array у тебя не два разных массива, а один массив с двумя именами.
+1
Ksenia Volkova Java Developer в DXC Master
25 мая 2021, 20:12решение
Начиная с этой строчки, обе переменные - arraySort и array - ссылаются на один и тот же массив.
То есть если ты считаешь, что создаешь тут копию массива - то нет, это не так.
И еще, метод sort должен сортировать любой переданный ему массив, а не только массив из 5 элементов.
+3