Реверс массива
Существует массив и его надо развернуть (или инвертировать) и получить массив .
Находим середину массива — array.length / 2 . Перебираем элементы массива от начала до середины и одновременно меняем местами элементы с индексом i и array.length — i — 1 . Для обмена значениями используем вариант с введением временной переменной, рассмотренный в предыдущем разделе:
public class ArrayInverter < public static void invert(int[] array) < for (int i = 0; i < array.length / 2; i++) < int tmp = array[i]; array[i] = array[array.length - i - 1]; array[array.length - i - 1] = tmp; >> >
Обратите внимание, что в классе ArrayInverter нет метода main() — будем вызывать метод invert() из другого класса. Для вызова метода, находящегося в другом классе, пишем имя класса — ArrayInverter.invert(array1) :
import java.util.Arrays; public class ArrayInverterTest1 < public static void main(String[] args) < int[] array1 = new int[]<>; System.out.print(Arrays.toString(array1) + " => "); ArrayInverter.invert(array1); System.out.println(Arrays.toString(array1)); array1 = new int[]; System.out.print(Arrays.toString(array1) + " => "); ArrayInverter.invert(array1); System.out.println(Arrays.toString(array1)); array1 = new int[]; System.out.print(Arrays.toString(array1) + " => "); ArrayInverter.invert(array1); System.out.println(Arrays.toString(array1)); array1 = new int[]; System.out.print(Arrays.toString(array1) + " => "); ArrayInverter.invert(array1); System.out.println(Arrays.toString(array1)); array1 = new int[]; System.out.print(Arrays.toString(array1) + " => "); ArrayInverter.invert(array1); System.out.println(Arrays.toString(array1)); > >
Если мы внимательно посмотрим на код в классе ArrayInverterTest1 , то увидим, что один блок кода повторяется пять раз. Дублирование кода — это плохая практика, поэтому вынесем повторяющийся код в отдельный метод, который будет вызываться пять раз с разными значениями:
import java.util.Arrays; public class ArrayInverterTest2 < public static void main(String[] args) < testInvert(new int[]<>); testInvert(new int[]); testInvert(new int[]); testInvert(new int[]); > private static void testInvert(int[] array) < System.out.print(Arrays.toString(array) + " =>"); ArrayInverter.invert(array); System.out.println(Arrays.toString(array)); > >
- Среднее арифметическое
- Числа Фибоначчи
- Вычисление сложности алгоритма
- Метод swap
- Алгоритм сортировки пузырьком
- Сортировка выбором
- Поиск элемента в массиве
- Задания
Array.prototype.reverse()
Метод reverse() на месте обращает порядок следования элементов массива. Первый элемент массива становится последним, а последний — первым.
Интерактивный пример
Синтаксис
array.reverse()
Параметры
Возвращаемое значение
Описание
Метод reverse() на месте переставляет элементы массива, на котором он был вызван, изменяет массив и возвращает ссылку на него.
Примеры
Пример: обращение порядка элементов в массиве
В следующем примере создаётся массив myArray , содержащий три элемента, а затем массив переворачивается.
var myArray = ["один", "два", "три"]; myArray.reverse(); console.log(myArray); // ['три', 'два', 'один']
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-array.prototype.reverse |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Array.prototype.join()
- Array.prototype.sort()
- TypedArray.prototype.reverse() (en-US)
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 4 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.
Как развернуть массив в java
Для разворота (инвертирования) массива в Java можно использовать простой алгоритм, который меняет местами первый элемент массива с последним, затем второй элемент с предпоследним, и так далее, пока не будут поменяны местами все элементы.
Вот пример кода:
public static void reverseArray(int[] arr) int temp; for (int i = 0; i arr.length / 2; i++) temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; > >
Этот метод принимает в качестве аргумента массив arr, и меняет местами его элементы в обратном порядке. Мы используем временную переменную temp , чтобы поменять местами элементы массива.
int[] numbers = 1, 2, 3, 4, 5>; System.out.println("Original array: " + Arrays.toString(numbers)); reverseArray(numbers); System.out.println("Reversed array: " + Arrays.toString(numbers));
Как поменять элементы массива в обратном порядке в Java
Напишите программу, которая меняет местами элементы одномерного массива из String в обратном порядке. Не используйте дополнительный массив для хранения результатов.
Решение:
Princeton_2.1
public class Test <
public static void main ( String [ ] args ) <
String [ ] a = < "Каждый " , " охотник " , " желает " , " знать " , " где " , " сидит " , " фазан " >;
//Выводим изначальный массив в консоль
for ( int i = 0 ; i < a . length ; i ++ ) <
System . out . print ( a [ i ] ) ;
System . out . println ( ) ;
int n = a . length ;
//Переменная, которая будет использоваться при обмене элементов
String temp ;
for ( int i = 0 ; i < n / 2 ; i ++ ) <
temp = a [ n - i - 1 ] ;
a [ n - i - 1 ] = a [ i ] ;
a [ i ] = temp ;
//Выводим конечный массив в консоль
for ( int i = 0 ; i < a . length ; i ++ ) <
System . out . print ( a [ i ] ) ;
Комментарии к задаче:
В результате выполнения этого кода получим перевернутый массив: вместо «Каждый охотник желает знать где сидит фазан» — «фазан сидит где знать желает охотник Каждый «

Как была решена задача? Основная ее часть — это фрагмент:
int n = a . length ;
String temp ;
for ( int i = 0 ; i < n / 2 ; i ++ ) <
temp = a [ n - i - 1 ] ;
a [ n - i - 1 ] = a [ i ] ;
a [ i ] = temp ;
Он по очереди меняет местами противоположные элементы массива, используя как посредника дополнительную переменную String temp (temp — от temporary, «временный»). Можно было бы обойтись и без нее, если бы массив хранил переменные числового типа.
Тут есть a[i] и малопонятное a[n-i-1]. Но на самом деле n-i-1 это просто формула для определения «противоположного» элемента массива:

Если бы мы имели массив, который бы состоял из элементов a, b, c, d, e и f, то есть массив из 6 элементов (n=6), «противоположным» (то есть элементом a[n-i-1]) для каждого из них были бы f для a, e для b и d для c. Цикл из фрагмента кода выполнялся бы три раза, до элемента d (i=0, 1, 2). Граница выполнения массива показана оранжевой линией на рисунке.
Так, обратите внимание, что мы не должны проходить циклом весь массив, чтобы поменять его элементы местами.
Надеемся — наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.
- ← Java 8 Stream Files
- Раздача карт в покере в Java →