Статьи

Полный курс по языку Java — от установки JDK до многопоточности и HTTP-запросов

Массивы

Страница 11 из 30 · 2026-10-25 · 3 мин чтения

Создание массива

public class ArrayBasics {    public static void main(String[] args) {        int[] numbers = new int[5];        int[] primes = {2, 3, 5, 7, 11};        String[] names = new String[]{"Аня", "Борис", "Вера"};        numbers[0] = 10;        numbers[4] = 50;        System.out.println(numbers.length);        System.out.println(primes[2]);        System.out.println(names[names.length - 1]);    }}

Размер массива фиксируется при создании. Индексация с нуля. Значения по умолчанию: 0 для чисел, false для boolean, null для объектов.

Выход за границы вызывает ArrayIndexOutOfBoundsException.

Перебор

public class ArrayIteration {    public static void main(String[] args) {        int[] data = {4, 8, 15, 16, 23, 42};        for (int i = 0; i < data.length; i++) {            System.out.println(i + ": " + data[i]);        }        int sum = 0;        for (int value : data) {            sum += value;        }        System.out.println("Сумма: " + sum);    }}

Поиск максимума и минимума

public class MinMax {    public static void main(String[] args) {        int[] data = {7, 3, 9, 1, 8};        int min = data[0];        int max = data[0];        for (int i = 1; i < data.length; i++) {            if (data[i] < min) {                min = data[i];            }            if (data[i] > max) {                max = data[i];            }        }        System.out.println(min + " " + max);    }}

Класс Arrays

import java.util.Arrays;public class ArraysUtil {    public static void main(String[] args) {        int[] data = {5, 2, 9, 1, 7};        System.out.println(Arrays.toString(data));        Arrays.sort(data);        System.out.println(Arrays.toString(data));        int index = Arrays.binarySearch(data, 7);        System.out.println(index);        int[] copy = Arrays.copyOf(data, 8);        System.out.println(Arrays.toString(copy));        int[] part = Arrays.copyOfRange(data, 1, 4);        System.out.println(Arrays.toString(part));        int[] filled = new int[4];        Arrays.fill(filled, 7);        System.out.println(Arrays.toString(filled));        System.out.println(Arrays.equals(data, copy));    }}

Бинарный поиск работает только по отсортированному массиву.

Присваивание ссылки и копирование

import java.util.Arrays;public class ArrayCopy {    public static void main(String[] args) {        int[] a = {1, 2, 3};        int[] b = a;        int[] c = a.clone();        a[0] = 99;        System.out.println(Arrays.toString(b));        System.out.println(Arrays.toString(c));    }}

Вывод: [99, 2, 3] и [1, 2, 3]. Присваивание b = a копирует ссылку, а clone() создает новый массив.

Многомерные массивы

import java.util.Arrays;public class Matrix {    public static void main(String[] args) {        int[][] grid = new int[3][4];        for (int i = 0; i < grid.length; i++) {            for (int j = 0; j < grid[i].length; j++) {                grid[i][j] = i * j;            }        }        System.out.println(Arrays.deepToString(grid));        int[][] literal = {            {1, 2, 3},            {4, 5, 6}        };        System.out.println(literal[1][2]);    }}

Двумерный массив — массив массивов. Строки могут иметь разную длину:

import java.util.Arrays;public class Jagged {    public static void main(String[] args) {        int[][] triangle = new int[4][];        for (int i = 0; i < triangle.length; i++) {            triangle[i] = new int[i + 1];            Arrays.fill(triangle[i], i + 1);        }        System.out.println(Arrays.deepToString(triangle));    }}

Сортировка пузырьком

import java.util.Arrays;public class BubbleSort {    public static void main(String[] args) {        int[] data = {5, 1, 4, 2, 8};        for (int i = 0; i < data.length - 1; i++) {            for (int j = 0; j < data.length - 1 - i; j++) {                if (data[j] > data[j + 1]) {                    int temp = data[j];                    data[j] = data[j + 1];                    data[j + 1] = temp;                }            }        }        System.out.println(Arrays.toString(data));    }}

На практике используйте Arrays.sort: он гораздо быстрее.

Сортировка объектов

import java.util.Arrays;import java.util.Comparator;public class SortObjects {    public static void main(String[] args) {        String[] words = {"банан", "яблоко", "киви", "слива"};        Arrays.sort(words);        System.out.println(Arrays.toString(words));        Arrays.sort(words, Comparator.comparing(String::length));        System.out.println(Arrays.toString(words));    }}

Переменное число аргументов

public class VarArgs {    static int sum(int... numbers) {        int total = 0;        for (int n : numbers) {            total += n;        }        return total;    }    public static void main(String[] args) {        System.out.println(sum());        System.out.println(sum(1, 2, 3));        System.out.println(sum(new int[]{4, 5}));    }}

Внутри метода numbers — обычный массив. Вариативный параметр должен быть последним.