Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Использование массивов




Для создания массива необходимо использовать квадратные скобки,

расположив, их справа от имени массива или от типа элементов, из которых

будет состоять массив, например:

int Numbers[];

int[] AnotherNumbers;

Допустимы оба варианта. При объявлении массивов в языке Java их

размер не указывается. Приведенные выше две строки не вызывают

резервирования памяти для массива. Здесь просто создаются ссылки на

массивы, которые нельзя использовать без инициализации.

Для того чтобы зарезервировать память для массива, необходимо создать

соответствующие объекты с помощью оператора new, например:

int[] AnotherNumbers; AnotherNumbers = new int[15];

 

В приведенной выше строке кода с помощью оператора new массиву AnotherNumbers выделяется память для хранения пятнадцати целых чисел. Нумерация элементов в массивах начинается с нуля.

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

int[] ColorRed = {255, 255, 100, 0, 10};

В приведенной выше строке кода создается массив ColorRed из пяти элементов.

Динамическая инициализация выполняется с использованием индекса массива, например, в цикле:

int nInitialValue = 7; int[] AnotherNumbers;

AnotherNumbers = new int[15]; for(int i = 0; i < 15; i++)

{

AnotherNumbers[i] = nInitialValue;

}

Можно создавать массивы не только из переменных базовых типов, но и из произвольных объектов. Каждый элемент такого массива должен инициализироваться оператором new.

Массивы могут быть многомерными и несимметричными. В следующем примере создается массив массивов. В нулевом и первом элементе создается массив из четырех чисел, а во втором – из восьми:

int[][] nDim = new int[5][10]; nDim[0] = new int [4]; nDim[1] = new int [4]; nDim[2] = new int [8];

 

Приведенный ниже код создает традиционную матрицу из шестнадцати элементов типа double, каждый из которых инициализируется нулем. Внутренняя реализация этой матрицы – массив массивов типа double.

double matrix [][] = new double [4][4];

Следующий фрагмент кода инициализирует такое же количество памяти, но память под вторую размерность отводится вручную. Это сделано для того, чтобы наглядно показать, что матрица на самом деле представляет собой вложенные массивы.

double matrix [][] = new double [4][]; matrix [0] = new double[4]; matrix[1] = new double[4];

matrix[2] = new double[4]; matrix[3] = { 0, 1, 2, 3 };

В следующем примере создается матрица размером 4 на 4 с элементами типа double, причем ее диагональные элементы (то есть, для которых х =у) заполняются единицами, а все остальные элементы остаются равными нулю.

class Matrix {

public static void main(String args[]) { double m[][];

m = new double[4][4]; m[0][0] = 1;

m[1][1] = 1; m[2][2] = 1; m[3][3] = 1;

System.out.println(m[0][0] +" "+ m[0][1] +" "+ m[0][2] +" "+ m[0][3]); System.out.println(m[1][0] +" "+ m[1][1] +" "+ m[1][2] +" "+ m[1][3]); System.out.println(m[2][0] +" "+ m[2][1] +" "+ m[2][2] +" "+ m[2][3]); System.out.println(m[3][0] +" "+ m[3][1] +" "+ m[3][2] +" "+ m[3][3]);

}

}

Виртуальная машина Java строго следит за тем, чтобы вы случайно не записали или не попытались получить значения, выйдя за границы массива. Если же вы попытаетесь использовать в качестве индексов значения, выходящие за границы массива – отрицательные числа, либо числа, которые больше или равны количеству элементов в массиве, то получите сообщение об ошибке.

Массивы в языке Java являются объектами встроенного класса. Для этого класса существует возможность определить размер массива, обратившись к элементу данных класса с именем length, например:

int[] AnotherNumbers;

AnotherNumbers = new int[15];

for(int i = 0; i < AnotherNumbers.length; i++)

{

AnotherNumbers[i] = nInitialValue;

}

Для задания начальных значений многомерных массивов существует специальная форма инициализатора. В этом случае, во вложенных фигурных скобках указывается блок инициализации для элементов строки многомерного массива. Внутри инициализатора массива можно использовать не только литералы, но и выражения. Ниже показан пример класса, в котором находится максимальный элемент многомерного массива.

 

public class lr1 {

//Объявление и инициализация массива int ar[][] = {{1,2,3,4,5},

{6,7,60,9,10},

{11,12,13,14,15}};

//Конструктор по умолчанию public lr1() {

}

//Метод, возвращающий максимальное значение массива public int getMax()

{

int max =0;

for(int i=0; i<3; i++)

{

for(int j=0; j<5; j++)

{

if (ar[i][j] > max) { max = ar[i][j]; }

}

}

return max;

}

public static void main(String[] args) { lr1 lr11 = new lr1();

System.out.println("Максимальное число =" + lr11.getMax());

}

}

 

 


 

 


Поделиться:

Дата добавления: 2015-09-15; просмотров: 44; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты