Массивы ·
‹ Предыдущий Следующий ›
⏱ 5 минут чтения Обновлено: 2026-07-17

Массивы в Java: создание, использование и примеры. Практические Задания

Ниже — восемь практических задач на массивы в Java: от создания и инициализации одномерных и двумерных массивов до поиска максимума и минимума и «гирлянды» на System.arraycopy(). Перед выполнением рекомендуем изучить уроки раздела «Массивы». К каждой задаче есть решение на Patreon, а к первым четырём — ещё и видеоразбор.

Одномерный массив типа String

  1. Создать массив типа String с размером 7.
  2. Записать в него значения дней недели.
  3. Вывести на консоль значение последнего элемента.

Подсказка

Индексация массива начинается с нуля, поэтому в массиве из 7 элементов последний имеет индекс 6. Чтобы не зашивать число в код, обращайтесь к последнему элементу через days[days.length - 1] — такой код не сломается при изменении размера массива.

Смотрите разбор задачи в видео.

Решение на Patreon →

Одномерный массив типа double

  1. Создать массив типа double с размером 4.
  2. Записать в него любые значения с помощью блока инициализации.
  3. Вывести на консоль значение первого элемента.

Смотрите разбор задачи в видео.

Решение на Patreon →

Двумерный массив типа String

  1. Создать массив типа String размером 3×6.
  2. Записать в него значения:
    a1  a2  a3  a4  a5  a6
    b1  b2  b3  b4  b5  b6
    c1  c2  c3  c4  c5  c6
  3. Распечатать массив.

Обратите внимание

Распечатать двумерный массив можно двумя вложенными циклами, а можно одной строкой: System.out.println(Arrays.deepToString(array)). Метод Arrays.deepToString() обходит вложенные массивы рекурсивно — обычный Arrays.toString() для двумерного массива выведет лишь ссылки на строки.

Смотрите разбор задачи в видео.

Решение на Patreon →

Двумерный массив типа char

  1. Создать двумерный массив типа char размером 4×2.
  2. Записать в него значения с помощью блока инициализации.
  3. Распечатать значения массива.

Смотрите разбор задачи в видео.

Решение на Patreon →

Максимум и минимум в каждой строке массива

  1. Создать двумерный массив 5×8 типа int и заполнить его с помощью блока инициализации.
  2. Найти максимальное и минимальное значение в каждой «строке» и записать эти значения в двумерный массив 5×2.
  3. Распечатать массив, содержащий максимальные и минимальные значения.

На чём чаще всего ошибаются

Не инициализируйте max и min нулём: если все числа в строке отрицательные, максимум «застрянет» на нуле, которого в массиве нет. Берите за стартовое значение первый элемент строки — array[i][0] — и сравнивайте с остальными.

Решение на Patreon →

Гирлянда с помощью массива

Реализовать задачу с гирляндой (Операторы языка Java. Задание 3), используя массивы: состояние каждой лампочки храните в элементе массива boolean[] или int[]. Для реализации режима бегущего огня используйте метод System.arraycopy().

Решение на Patreon →

Проверьте свой код

При написании программ обращайте внимание на рекомендации по оформлению кода.

  1. Создать отсортированный массив типа int размером 10, например: {2, 5, 8, 12, 16, 23, 38, 45, 56, 72}.
  2. С помощью метода Arrays.binarySearch() найти индекс элемента со значением 45.
  3. Вывести найденный индекс на консоль. Затем выполнить поиск значения, которого нет в массиве (например, 100), вывести результат и в комментарии к коду объяснить, что означает отрицательное число, которое возвращает метод в этом случае.

Обратите внимание

Arrays.binarySearch() работает только на отсортированном массиве — на неотсортированном результат непредсказуем. Если элемент не найден, метод возвращает отрицательное число -(точка_вставки) - 1, а не -1: по нему можно узнать, куда элемент нужно было бы вставить, чтобы массив остался отсортированным.

Копирование части массива через System.arraycopy()

  1. Создать массив типа int размером 10 и заполнить его значениями от 1 до 10.
  2. С помощью метода System.arraycopy() скопировать элементы с 3-го по 7-й (индексы 2–6) в новый массив размером 5.
  3. Распечатать на консоль исходный и новый массив, используя метод Arrays.toString().

Часто задаваемые вопросы

Как объявить и инициализировать массив в Java?

Два основных способа: через new с указанием размера — String[] days = new String[7]; (элементы заполняются значениями по умолчанию), либо блоком инициализации со значениями сразу — double[] d = {1.5, 2.7, 3.1, 4.2};. Для двумерного массива блок вкладывается: char[][] m = {{'a', 'b'}, {'c', 'd'}};.

Как вывести массив на консоль в Java?

Прямой вызов System.out.println(array) напечатает не содержимое, а строку вида [Ljava.lang.String;@1b6d3586 — тип и хеш. Используйте цикл for/for-each либо готовые методы: Arrays.toString(array) для одномерного массива и Arrays.deepToString(array) для двумерного.

Как найти максимальный и минимальный элемент массива?

Заведите переменные max и min, инициализируйте их первым элементом массива и в цикле сравнивайте с каждым следующим: if (a[i] > max) max = a[i];. Начиная с Java 8 то же можно сделать через Stream API: Arrays.stream(a).max().getAsInt().

Что делает System.arraycopy() и чем он лучше цикла?

Метод копирует length элементов из массива src, начиная с позиции srcPos, в массив dest, начиная с позиции destPos. Это нативный метод JVM — на больших массивах он заметно быстрее поэлементного цикла; именно на нём построен и Arrays.copyOf(). Для сдвига элементов (бегущий огонь) источник и приёмник могут быть одним и тем же массивом.

Что такое двумерный массив в Java на самом деле?

В Java нет «матриц» как отдельного типа: двумерный массив — это массив, элементы которого сами являются массивами. Поэтому array.length возвращает число строк, array[0].length — длину первой строки, а строки могут иметь разную длину (ступенчатый, jagged-массив).

Комментарии

unknown Dec 21, 2022
Возможное решение задач, СПОЙЛЕР!!! https://www.online-java.com/fiR1s4BDoJ

Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.