← Назад к вопросам

Как узнать длину массива

1.0 Junior🔥 141 комментариев
#Коллекции#Основы Java

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Определение длины массива в Java

Основной способ: свойство length

В Java любой массив имеет встроенное свойство length, которое содержит количество элементов в массиве. Это свойство является публичным полем, доступным для чтения.

// Объявление и инициализация массива
int[] numbers = {10, 20, 30, 40, 50};

// Получение длины массива
int length = numbers.length;
System.out.println("Length: " + length);  // Output: Length: 5

Примеры для различных типов массивов

Массив примитивных типов

int[] intArray = new int[10];
System.out.println(intArray.length);  // 10

double[] doubleArray = {1.5, 2.5, 3.5};
System.out.println(doubleArray.length);  // 3

boolean[] booleanArray = new boolean[5];
System.out.println(booleanArray.length);  // 5

Массив объектов

String[] strings = {"Apple", "Banana", "Orange"};
System.out.println(strings.length);  // 3

Integer[] integers = new Integer[7];
System.out.println(integers.length);  // 7 (не зависит от заполненности)

Object[] objects = new Object[100];
System.out.println(objects.length);  // 100

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

Для многомерных массивов нужно использовать length для каждого измерения отдельно:

// 2D массив
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// Количество строк
int rows = matrix.length;  // 3

// Количество столбцов (в первой строке)
int columns = matrix[0].length;  // 3

// Итерация по всему массиву
for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}

Jagged Arrays (неправильные массивы)

// Jagged array с разным количеством элементов в строках
int[][] jagged = {
    {1, 2, 3, 4},
    {5, 6},
    {7, 8, 9}
};

int rows = jagged.length;  // 3
int firstRowLength = jagged[0].length;  // 4
int secondRowLength = jagged[1].length;  // 2
int thirdRowLength = jagged[2].length;  // 3

Практические примеры

Поиск максимального элемента

public class ArrayUtils {
    public static int findMax(int[] array) {
        if (array.length == 0) {
            throw new IllegalArgumentException("Array cannot be empty");
        }
        
        int max = array[0];
        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
            }
        }
        return max;
    }
}

// Использование
int[] numbers = {5, 2, 8, 1, 9, 3};
int maximum = ArrayUtils.findMax(numbers);
System.out.println("Maximum: " + maximum);  // Maximum: 9

Копирование массива

public class ArrayCopy {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        
        // Способ 1: используя length
        int[] copy1 = new int[original.length];
        for (int i = 0; i < original.length; i++) {
            copy1[i] = original[i];
        }
        
        // Способ 2: Arrays.copyOf()
        int[] copy2 = Arrays.copyOf(original, original.length);
        
        // Способ 3: System.arraycopy()
        int[] copy3 = new int[original.length];
        System.arraycopy(original, 0, copy3, 0, original.length);
    }
}

Обращение (реверс) массива

public class ArrayReverse {
    public static void reverse(int[] array) {
        int length = array.length;
        for (int i = 0; i < length / 2; i++) {
            // Используем length для определения конца
            int temp = array[i];
            array[i] = array[length - 1 - i];
            array[length - 1 - i] = temp;
        }
    }
    
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        reverse(numbers);
        System.out.println(Arrays.toString(numbers));  // [5, 4, 3, 2, 1]
    }
}

Проверка четности длины

public class ArrayValidator {
    public static boolean isEvenLength(int[] array) {
        return array.length % 2 == 0;
    }
    
    public static void main(String[] args) {
        int[] even = {1, 2, 3, 4};  // length = 4
        int[] odd = {1, 2, 3};  // length = 3
        
        System.out.println(isEvenLength(even));  // true
        System.out.println(isEvenLength(odd));   // false
    }
}

Важные свойства length

  1. Это поле, а не метод: используется array.length, а не array.length()
  2. Неизменяемое: длина массива не может быть изменена после создания
  3. Всегда работает: даже если массив содержит null элементы
  4. Не null: length никогда не бывает null
  5. Для null массива: если массив == null, то обращение к length вызовет NullPointerException
int[] array = null;
int length = array.length;  // NullPointerException!

int[] emptyArray = new int[0];
int zeroLength = emptyArray.length;  // 0, работает корректно

Collections vs Arrays

Для динамических коллекций используется метод size():

// Array
int[] arr = {1, 2, 3};
int length = arr.length;  // свойство

// List
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
int size = list.size();  // метод

// Set
Set<Integer> set = new HashSet<>();
int setSize = set.size();  // метод

Заключение

Для определения длины массива в Java используется свойство length, которое содержит количество элементов. Это встроенное поле массива, доступное для все типов массивов, включая примитивные типы и объекты, одномерные и многомерные массивы. Использование length — это стандартный способ работы с размерами массивов.

Как узнать длину массива | PrepBro