Java Урок 9: Массивы, тип int

Массив — это набор однотипных переменных, на которые ссылаются по общему имени. Массивы можно создавать из элементов любого типа, и они могут иметь одно или несколько измерений. К определенному элементу в массиве обращаются по его индексу (номеру). Массивы предлагают удобные средства группировки связанной информации.

Скачать исходники для статьи можно ниже

Одномерные массивы

Одномерный массив — это, по существу, список однотипных переменных. Чтобы создать массив, сначала следует создать переменную массива желательного типа. Общий формат объявления одномерного массива:

type name[ ];

Здесь type объявляет базовый тип массива; name — имя переменной массива. Базовый тип определяет тип данных каждого элемента массива. Например, объявление одномерного массива int-компонентов с именем month_days имеет вид:

int month_days[];

Хотя это объявление и устанавливает факт, что month days является переменной массива, никакой массив в действительности не существует. Фактически, значение month_days установлено в null (пустой указатель), который представляет массив без значения. Чтобы связать month days с фактическим, физическим массивом целых чисел, нужно выделить память для него, используя операцию new, и назначать ее массиву month_days. new — это специальная операция, которая распределяет память.
Подробнее операция new будет рассмотрена дальше, сейчас же она нужна для выделения памяти под массив. Общий формат new в применении к одномерным массивам имеет вид:

name = new type [size] ;

где type — тип распределяемых данных, size — число элементов в массиве, name — переменная, которая связана с массивом. Чтобы использовать new для распределения памяти под массив, нужно специфицировать тип и число элементов массива. Элементы в массиве, выделенные операцией new, будут автоматически инициализированы нулями. Следующий пример распределяет память для 12-элементного массива целых чисел и связывает его с переменной month_days.

month_days = new int[12];

После того как эта инструкция выполнится, month_days будет ссылаться на массив из двенадцати целых чисел. Затем все элементы в массиве будут инициализированы нулями.
Как только вы выделили память для массива, можно обращаться к определенному элементу в нем, указывая в квадратных скобках индекс. Нумерация элементов массива начинается с нуля. Например, следующий оператор присваивает значение 28 второму элементу массива month_days.

month_days[1] = 28;

Следующая строка отображает на экран значение, хранимое в элементе с индексом 3.

System.out.println(month_days[3]);

Собрав все части вместе, получаем программу, которая создает массив для хранения количества дней каждого месяца.

// Демонстрирует одномерный массив.
public class Array {
    public static void main(String[] args) {
        int month_days[];
        month_days = new int[12];
        month_days[0] = 31;
        month_days[1] = 28;
        month_days[2] = 31;
        month_days[3] = 30;
        month_days[4] = 31;
        month_days[5] = 30;
        month_days[6] = 31;
        month_days[7] = 31;
        month_days[8] = 30;
        month_days[9] = 31;
        month_days[10] = 30;
        month_days[11] = 31;
        System.out.println("Апрель содержит " + month_days[3] + " дней.");
    }
}

После выполнения эта программа выводит число дней в апреле. Как говорилось выше, индексация элементов массива в Java начинается с нуля, так что число дней апреля хранится в элементе month_days [3] и равно 30.
Возможна комбинация объявления переменной типа массив с выделением массиву памяти непосредственно в объявлении:

int month_days[] = new int[12];

Данный способ обычно встречается в профессионально написанных программах Java.
Массивы можно инициализировать во время их объявления. Процесс во многом аналогичен тому, что используется при инициализации простых типов. Инициализатор массива — это список разделенных запятыми выражений, окруженный фигурными скобками. Массив будет автоматически создаваться достаточно большим, чтобы содержать столько элементов, сколько вы определяете в инициализаторе массива. Нет необходимости использовать операцию new. Например, чтобы хранить число дней в каждом месяце, следующий код создает инициализированный массив целых чисел:
Улучшенная версия предыдущей программы.

public class AutoArray {
public static void main(String[] args) {
int month_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
System.out.println(«Апрель содержит » + month_days[3] + » дней.»);
}
}

Когда вы выполните эту программу, то увидите тот же самый вывод, как у предыдущей версии программы.
Java делает строгие проверки, чтобы удостовериться, что вы случайно не пробуете сохранять или читать значения вне области хранения массива. Исполнительная система Java тоже делает тщательные проверки, чтобы убедиться, что все индексы массивов находятся в правильном диапазоне. Например, исполнительная система будет проверять значение каждого индекса в month_days, чтобы удостовериться, что он находится между 0 и 11 включительно. Если вы попробуете обратиться к элементам вне диапазона массива (индекс меньше нуля или больше, чем длина массива), то вызовете ошибку времени выполнения.

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий