Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.06.2023
Сообщений: 45

Может кто подсказать как это работает

30.08.2023, 21:42. Показов 705. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вроде по-началу понял а потом словил ступор.Кому не лень напишите пожалуйста поэтапное действие кода, что как происходит и как это на что влияет. Я просто не пойму почему результат метода reverseArray как-то связанно влияет на printArray.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Main {
    public static void main(String[] args) {
        int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};
        printArray(array);
        reverseArray(array);
        printArray(array);
    }
 
    public static void reverseArray(int[] array) {
        for (int i = 0; i < array.length / 2; i++) {
            int temp = array[i];
            array[i] = array[array.length - i - 1];
            array[array.length - i - 1] = temp;
        }
    }
 
    public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
        System.out.println();
 
 
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2023, 21:42
Ответы с готовыми решениями:

Может кто подсказать как это работает
Я взял готовое решение задачи потому что не смог ее одолеть. Подскажите пожалуйста кому не лень по полочкам как здесь работает так что...

Кто может подсказать как можно создать свойства для управления двунаправленным списком работ?
Кто может подсказать как можно создать свойства для управления двунаправленным списком работ. Желательно простым языком

Кто может подсказать с параметризированными конструкторами
Не понимаю как должны быть оформлены параметры конструктора. вот моя формальная программа. Не понимаю какие в этой программе должны быть...

7
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6195 / 2896 / 1043
Регистрация: 01.06.2021
Сообщений: 10,638
30.08.2023, 22:16
Java
1
2
3
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
это код меняет местами элементы array[i] и array[array.length - i - 1]

Например, как вы можете менять друг с другом значения двух переменных a и b?
Одним из методов решения является использование временной переменной:
Допустим это наши переменные:
Java
1
int a = 1, b = 2;
Java
1
2
3
int temp = a; // temp = 1
a = b; // a = 2
b = temp; // b = 1
Т.е. мы поменяли значения, a теперь равен 2, а b равен 1.

Т.е. в вашем коде происходит то же самое.

Добавлено через 4 минуты
Цитата Сообщение от German2217 Посмотреть сообщение
Java
1
for (int i = 0; i < array.length / 2; i++)
и вот с помощью цикла мы проделываем данное действие, пока не инверсируем массив

Допустим есть массив:
1 2 3 4 5 6

сразу мы меняем 1 и 6 местами
6 2 3 4 5 1

потом 2 и 5
6 5 3 4 2 1

потом 3 и 4
6 5 4 3 2 1

Обратите внимание, что для массива размером 6 элементов, понадобились только 3 итерации (6/2)

Поэтому у нас i < array.length / 2
0
0 / 0 / 0
Регистрация: 20.06.2023
Сообщений: 45
30.08.2023, 22:23  [ТС]
Хорошо, а как тогда результат цикла из reverseArray меняет вывод в консоль из метода printArray?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6195 / 2896 / 1043
Регистрация: 01.06.2021
Сообщений: 10,638
30.08.2023, 22:28
Лучший ответ Сообщение было отмечено German2217 как решение

Решение

German2217, этот код
Java
1
2
3
4
5
6
7
8
public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
        System.out.println();
 
 
    }
просто печатает все элементы array

Соответственно, что именно выведется - зависит от того, что находилось в array на момент вызова метода printArray

German2217, в вашем коде
Java
1
2
3
printArray(array); // массив сперва печатается до того, как мы его поменяем
reverseArray(array); // потом мы инверсируем массив
printArray(array); // а затем печатаем массив после смены порядка элементов
0
0 / 0 / 0
Регистрация: 20.06.2023
Сообщений: 45
30.08.2023, 22:29  [ТС]
Спасибо тебе, добрый человек
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6195 / 2896 / 1043
Регистрация: 01.06.2021
Сообщений: 10,638
31.08.2023, 00:52
German2217, если что, напечатать массив, перевернуть его, а потом напечатать перевернутый массив (т.е. всё то, что делает ваш код) можно и с помощью кода покороче:

Java
1
2
3
4
5
6
7
8
9
10
import java.util.*;
 
class Main {
    public static void main(String[] args) {
        Integer[] array = {4,1,2,7,5};
        System.out.println(Arrays.toString(array));
        Collections.reverse(Arrays.asList(array));
        System.out.println(Arrays.toString(array));
    }
}
0
0 / 0 / 0
Регистрация: 20.06.2023
Сообщений: 45
31.08.2023, 20:25  [ТС]
Я только учусь и это у меня задачи с заведомо более сложным решением, видимо чтобы я знал что так тоже можно) А за пример от тебя спасибо, только я почти ничего не понял что там происходит, какие-то непонятные команды вызываются)

Добавлено через 53 секунды
А именно вот эта часть Collections.reverse(Arrays.asList(array) );
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
31.08.2023, 20:34
Цитата Сообщение от German2217 Посмотреть сообщение
А именно вот эта часть Collections.reverse(Arrays.asList(array) );
Arrays.asList
Collections.reverse

Добавлено через 1 минуту

Не по теме:

Changes to the returned list "write through" to the array.
Немного выпал с этой "фичи".

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2023, 20:34
Помогаю со студенческими работами здесь

Dirty в коде: Кто может подсказать для чего это и можно ли как-то убрать это?
Добрый день. Увидел тут в используемом фреймворке переменную dirty, которая ограничивает работу методов. Кто может подсказать для чего это...

Mfc c++ Есть кто ни будь опытный кто может подсказать как сделать
Я программист самоучка, нуждаюсь в помощи Задумал я в общем сделать программу для записи видео с камер видеонаблюдения (ну конечно...

Кто-нибудь может объяснить как это работает?
Именно создание списка не понятно main :: IO() main = do let fib = 0 : 1 : n &lt;- readLn print(fib !! n)

Кто может подсказать, как обратиться к мышке?
Кто может подсказать как обратиться к мышке? допустим я хочу чтобы при нажатии выдавался двойной, тройной клик, или вообще при нажатии на...

Pascal кто может подсказать как сделать
Если можно то полностью код программы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru