Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Выделяя память под многомерный массив, достаточно указать лишь первый (крайний слева) размер. А память под остальные размеры массива можно выделять по отдельности. Например, в приведенном ниже фрагменте кода память выделяется только под первый размер двумерного массива table. А под второй его размер она выделяется вручную.
int tablet][] = new int[3][];
table[0] = new int[4];
table[1] = new int[4];
table[2] = new int[4];
Объявляя массив подобным образом, мы не получаем никаких преимуществ, но в некоторых случаях такое объявление оказывается вполне оправданным. Это, в частности, дает возможность установить разную длину массива по каждому индексу. Как упоминалось выше, многомерный массив реализован в виде массива массивов, что позволяет контролировать длину каждого из них. Допустим, требуется написать программу, в процессе работы которой будет сохраняться число пассажиров, перевезенных автобусом-экспрессом в аэропорт. Если автобус-экспресс делает по десять рейсов в будние дни и по два рейса в субботу и воскресенье, то массив riders можно объявить так, как показано в приведенном ниже фрагменте кода. Обратите внимание на то, что длина массива по второму размеру для первых пяти элементов равна 10, а для двух последних элементов — 2.
// Указать разную длину по второму размеру массива вручную,
class Ragged {
public static void main(String args[]) {
int riders[][] = new int[7][];
// Для первых пяти элементов длина массива
//по второму размеру равна 10.
riders[0] = new int[10];
riders[1] = new int[10];
riders[2] = new int[10];
riders[3] = new int[10];
riders[4] = new int[10];
// Для остальных двух элементов длина массива
//по второму размеру равна 2.
riders[5] = new int[2];
riders[6] = new int[2];
int i, j;
// сформировать произвольные данные
for(i=0; i < 5; i++)
for(j=0; j < 10; j++)
riders[i][j] = i + j + 10;
for(i=5; i < 7; i++)
for(j=0; j < 2; j++)
riders[i][j] = i + j + 10;
System.out.println("Riders per trip during the week:");
for(i=0; i < 5; i++) {
for(j =0; j < 10; j++)
System.out.print(riders[i] [j] + " ") ;
System.out.println() ;
}
System.out.println() ;
System.out.println("Riders per trip on the weekend:");
for(i=5; i < 7; i++) {
for (j=0; j < 2; j++)
System.out.print(riders[i][j] + " ");
System.out.println();
}
}
}
Для большинства приложений использовать нерегулярные массивы не рекомендуется, поскольку это затрудняет восприятие кода другими программистами. Но в некоторых случаях такие массивы вполне уместны и могут существенно повысить эффективность программ. Так, если вам требуется создать большой двумерный массив, в котором используются не все элементы, то нерегулярный массив позволит существенно сэкономить память.
Трехмерные, четырехмерные и многомерные массивы
В Java допускаются массивы размерностью больше двух. Ниже приведена общая форма объявления многомерного массива.
тип имя_массива[] []...[] = new тип[размер_1] [размер_2] . . . [размер_Ы] ;
В качестве примера ниже приведено объявление трехмерного целочисленного массива размерами 4x10x3.
int multidim[][][] = new int[4][10][3];
Инициализация многомерных массивов
Многомерный массив можно инициализировать, заключая инициализирующую последовательность для каждого размера массива в отдельные фигурные скобки, как показано ниже.
тип имя_массива[] [] = {
{ val, val, val, ..., val },
{ val, val, val, ..., val },
{ val, val, val, .. ., val }
};