Четверг
28.03.2024
19:41


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » Java приложения » Java

Одномерные массивы
Массивы
    Массив — это набор однотипных переменных, на которые ссылаются по общему имени. Массивы можно создавать из элементов любого типа, и они могут иметь одно или несколько измерений. К определенному элементу в массиве обращаются по его индексу (номеру). Массивы предлагают удобные средства группировки связанной информации.
   
Одномерные массивы
    Одномерный массив — это, по существу, список однотипных переменных. Чтобы создать массив, сначала следует создать переменную массива (array variable) желательного типа. Общий формат объявления одномерного массива:
    type var-name[ ];
    Здесь type объявляет базовый тип массива; var-name — имя переменной массива. Базовый тип определяет тип данных каждого элемента массива. Например, объявление одномерного массива int-компонентов с именем month_days имеет вид:
    int month_days[];
    Хотя это объявление и устанавливает факт, что month days является пере¬менной массива, никакой массив в действительности не существует. Факти¬чески, значение month_days установлено в null (пустой указатель), который представляет массив без значения. Чтобы связать month days с фактическим, физическим массивом целых чисел, нужно выделить память для него, используя операцию new, и назначать ее массиву month_days. new — это специальная операция, которая распределяет память.
    Подробнее операция new будет рассмотрена дальше, сейчас же она нужна для выделения памяти под массив. Общий формат new в применении к одномерным массивам имеет вид:
    array-var = new type [size] ;
    где type — тип распределяемых данных, size — число элементов в массиве, array-var - переменная, которая связана с массивом. Чтобы использовать new для распределения памяти под массив, нужно специфицировать тип и число элементов массива. Элементы в массиве, выделенные операцией new, будут автоматически инициализированы нулями. Следующий пример распределяет память для 12-элементного массива целых чисел и связывает его с переменной month_days.
    month_days = new int[12];
    После того как эта инструкция выполнится, month_days будет ссылаться на массив из двенадцати целых чисел. Затем все элементы в массиве будут инициализированы нулями.
    Процесс получения массива включает два шага. Во-первых, следует объявить переменную массива желательного типа. Во-вторых, необходимо выделить память, которая будет содержать массив, используя операцию new, и назначать ее переменной массива. Таким образом, в Java все массивы являются динамически распределяемыми. Если концепция динамического распределения вам неизвестна, не беспокойтесь. Она будет подробно описана в этой книге позже.
    Как только вы выделили память для массива, можно обращаться к определенному элементу в нем, указывая в квадратных скобках индекс. Нумерация элементов массива начинается с нуля. Например, следующий оператор присваивает значение 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 включительно. Если вы попробуете обратиться к элементам вне диапазона массива (индекс меньше нуля или больше, чем длина массива), то вызовете ошибку времени выполнения.
    Имеется еще один пример, который использует одномерный массив. Он находит среднее значение набора чисел.

// Среднее значение элементов массива.
public class Average {

  public static void main(String[] args) {
    double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};
    double result = 0;
    int i;
    for (i = 0; i < 5; i++) {
      result = result + nums[i];
    }
    System.out.println("Среднее арифметическое равно " + result / 5);
  }
}
    Альтернативный синтаксис объявления массива
    Существует иная форма, которая может использоваться для объявления массива:
    typy[ ] var-name;
  Здесь квадратные скобки следуют за спецификатором типа, а не именем переменной массива. Например, следующие два объявления эквивалентны:
int al[] = new int[3];
int[] a2 = new int[3];
Представленные здесь объявления также эквивалентны:
char twodi[][] = new char[3][4];
char[][] twod2 = new char[3][4];
Эта альтернативная форма объявления включена, главным образом, для удобства.
Категория: Java | Добавил: Akarak (13.10.2011)
Просмотров: 9815 | Комментарии: 1 | Рейтинг: 3.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
Java [12]
Консольные приложения
Java ООП [2]

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2024
    Используются технологии uCoz