Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 13

Перевернуть массив встроенными функциями языка Java

18.02.2016, 02:55. Показов 7629. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Проблема такая есть задача в массиве массивов перевернуть каждую вторую строку. Сделал как знал. Но условие стоит, что надо это сделать встроенными функциями. Как я понимаю это Arrays.*
Прочитал что говорится о сортировка в разных местах, но так и не понял, как этим пользоваться и чем они лучше самописных методов.
Прошу объяснить на примере как перевернуть массив, хотя бы простой. Или подтолкнуть в нужном направлении.
Вот мой код данной задачи.
Заранее благодарю.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.*;
 
public class Main
{
    public static void main(String[] args)
    {
        
        Scanner N = new Scanner(System.in);
        System.out.print("Введите количество строк матрицы: ");
        int n = N.nextInt();
        System.out.print("Введите количество столбцов матрицы: ");
        int m = N.nextInt();
        N.close();
        int[][] massive2d = new int[n][m];
        
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                massive2d[i][j] = (int)(Math.random()*201-100);
                System.out.print(massive2d[i][j] + "\t" );
            }
            System.out.println();
        }
        
        for(int i = 1; i < n; i = i + 2){
            for(int j = 0; j < m/2; j++){
                int z = massive2d[i][j];
                massive2d [i][j] = massive2d[i][(m-1)-j];
                massive2d[i][(m-1)-j] = z;
            }
        }
        
        System.out.println();
        
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                System.out.print(massive2d[i][j] + "\t" );
            }
            System.out.println();
        }
        
        
        
        
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2016, 02:55
Ответы с готовыми решениями:

Найти значение функции sin(x), не пользуясь встроенными функциями языка, с заданной точностью
Найти значение функции sin(x), не пользуясь встроенными функциями языка, с заданной точностью.

Можно ли встроенными функциями PHP отсортировать массив по значению?
Приветствую друзья! У меня имеется следующий массив: $params = ,'12'=&gt;,'13'=&gt;,'14'=&gt;,'15'=&gt;, ...

Написать с 5 встроенными функциями
Написать задачу,в которой необходимо использовать не менее 5 встроенных функций.

6
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
18.02.2016, 06:51
прошу прошение, но можете объяснить что такое массив массивов? это если у меня n=2 и m=3, то должен получать на первом же элементе верхнего/основного массива массив состоящий из n,m элементов, и так далее?
0
7 / 7 / 6
Регистрация: 30.09.2013
Сообщений: 28
18.02.2016, 10:31
В общем, можешь глянуть в сторону не Arrays, а Collections - там есть нужный нативный тебе метод.

Массив массивов это матрица. Да, обратившись к a[i][j], ты получаешь доступ к j-тому элементу массива под номером i.
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 13
18.02.2016, 22:10  [ТС]
Нашёл что-то подобное, но этот метод сортирует по возрастанию, а потом разворачивает. Уже ближе, но все ещё не то.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.NavigableSet;
import java.util.TreeSet;
 
public class Main {
    public static void main(String[] args) {
        int n = 10;
        NavigableSet<Integer> ns = new TreeSet<>();
        for(int i = 0; i < n; i++){
            int k = (int)(Math.random()*201-100);
            System.out.print(k + " ");
            ns.add(k);
        }
        System.out.println();
        // Get a reverse view of the navigable set
        NavigableSet<Integer> reverseNs = ns.descendingSet();
 
        // Print the normal and reverse views
        System.out.println("Normal order: " + ns);
        System.out.println("Reverse order: " + reverseNs);
}}
Добавлено через 25 минут
Нашёл то что искал. Вопрос можно считать закрытым.
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
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // create array list object
        int n = 10;
        List<Integer>  arrlst = new ArrayList<Integer>();
 
        // populate the list
        for(int i = 0; i < n; i++){
            int k = (int)(Math.random()*201-100);
            arrlst.add(k);
        }
 
        System.out.println("The initial list is :"+arrlst);
 
        // reverse the list
        Collections.reverse(arrlst);
 
        System.out.println("The Reverse List is :"+arrlst);
    }
}
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
18.02.2016, 22:31
Kenr, вы же хотели чётные строки массива переворачивать, а в этих решения только линейный массив. Вот такой вариант переворачивает чётные строки в двухмерном массиве:
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
26
27
28
29
30
31
32
33
34
35
class ReverceArray {
 
    public static void main(String[] args) {
        int n = 6, m = 15;
        int[][] array = new int[n][m];
        ArrayList<Integer> temp = new ArrayList<>();
        //заполним массив и выведем на экран
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = (int) (Math.random() * 50 - 25);
                System.out.printf("%4d", array[i][j]);
            }
            System.out.println();
        }
        System.out.println();
        //перевернём чётные строки
        for (int i = 1; i < array.length; i += 2) {
            for (int j = 0; j < array[i].length; j++) {
                int tmp = array[i][j];
                temp.add(tmp);
            }
            Collections.reverse(temp);
            for (int k = 0; k < array[i].length; k++) {
                array[i][k] = temp.get(k);
            }
        }
        //результат на экран
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.printf("%4d", array[i][j]);
            }
            System.out.println();
        }
    }
}
1
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 13
18.02.2016, 23:00  [ТС]
HOBATOP, Спасибо конечно, но в остальном проблемы не было. Не хватало только метода разворота массива. А остальное уж прикручу сам.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
19.02.2016, 01:04
Минутка упоротости:

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
26
27
28
29
30
31
32
33
    private static int[][] reverseEachSecond(final int[][] matrix) {
        return IntStream.range(0, matrix.length)
                .mapToObj(i -> (i&1) == 0 ? matrix[i] : reverse(matrix[i]))
                .toArray(i -> new int[matrix.length][]);
    }
 
    private static int[] reverse(final int[] array) {
        return IntStream.range(0, array.length)
                .mapToObj(i -> Indexed.of(i, array[i]))
                .sorted(Indexed.REVERSE_INDEX)
                .mapToInt(Indexed::value)
                .toArray();
    }
 
    private static final class Indexed {
        public static final Comparator<Indexed> REVERSE_INDEX
                = (left, right) -> Integer.compare(right.index(), left.index());
        public static Indexed of(final int index, final int value) {
            return new Indexed(index, value);
        }
        private final int index;
        private final int value;
        private Indexed(final int index, final int value) {
            this.index = index;
            this.value = value;
        }
        public int index() {
            return index;
        }
        public int value() {
            return value;
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2016, 01:04
Помогаю со студенческими работами здесь

Работа со встроенными функциями php
Дана последовательность слов. Напечатать все слова, предварительно оставив в слове только первые включения каждой буквы

Решить встроенными функциями краевую задачу
Найти встроенными функциями краевую задачу

Создать блочную матрицу встроенными функциями
При помощи встроенных функций для заполнения стандартных матриц, индексации двоеточием и, возможно, поворота, транспонирования или...

Отступ на 2 пробела всего текста встроенными функциями в RichEdit
Здравствуйте господа программеры! Подскажите плиз как организовать отступ в RichEdit на пару-тройку пробелов всего текста. procedure...

Как решить встроенными функциями уравнение теплопроводности с непостоянным коэффициентом
Здравствуйте ,может быть кто- нибудь знает как решить встроенными функциями уравнение теплопроводности с непостоянным коэффициентом ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru