Основы Java. Урок 8. Массивы.
Полные версии уроков (с картинками) можно найти по адресам
Урок 8. Массивы.
Введение в Java. Урок 8. Массивы
Начнем сразу с примеров. Вот пример, в котором мы заводим массив из 3-х целых чисел, в каждое из которых мы записываем случайное целое число от 0 до 9 и затем выводим все числа на экран:
class Test{
public static void main(String [] args)
{
int [] k;
k=new int [3];for(int i=0; i<3; i++)
{
k[i]=(int)(10*Math.random());
System.out.println(k[i]);
}
}
}
В этм примере мы завели массив k за два этапа - сначала мы объявили переменную типа массив целых чисел:
...
int [] k;
...
и затем мы определили массив (т. е. указали, сколько конкретно элементов в нем содержится):
...
k=new int [3];
...
Объявление мессива можно сделать и другим способом:
...
int k[];
...
Т. е. квадратные скобочки можно ставить и так, и так. В общем-то особой разницы нет, и скобки можно ставить там, где удобнее в конкретной ситуации. Вот небольшой пример на два эти способа:
...
int n, k[]; //n - целое, k - массив из целыхint[] n, k; //n и k - массивы из целых
...
Два этапа для массива можно объединить:
...
int [] k = new int [3];
...
Нумерация элементов массива, как и в других C/C++-подобных языках, начинается с нуля.
Задание начальных элементов для массива можно совместить с его объявлением:
...
double[] d = {3.14, -44.43, 9.084};
...
В этом примере мы завели массив их трех вещественных чисел. Обратите внимание, что в этом случае можно в квадратных скобках ничего не писать.
Теперь рассмотрим двумерные массивы. Опять же начнем с примера:
class Test{
public static void main(String [] args)
{
int [][] k = {{3, 4, -44}, {-2, 8}};
System.out.println(k[0][2]);
System.out.println(k[1][1]);
}
}
В этом фрагменте мы заводим двумерный массив (так как у на две пару квадратных скобок) и тут же его инициализируем. Наш массив фактически представляет из себя массив массивов, т. е. в нашем массиве в качестве элементов содержаться два других одномерных массива - в одном из них три элемента, и в другом - два. Обратите внимание, что в Java массивы не обязательно "прямоугольные".
Точно также, как и для одномерных массивов, для многомерных существуют и другие способы их задания:
Массивы могут участвовать в операциях присваивания:
class Test{
public static void main(String [] args)
{
int [][] k = {{3, 4, -44}, {-2, 8}};
int[][] k1;
k1=k; //k1 теперь ссылается на точ же массив, что и k
System.out.println(k1[0][2]);
System.out.println(k1[1][1]);
}
}
Указанный фрагмент выведет на экран -44 и 8.
Массивы в Java задаются динамически. Это в частности означает, что мы можем менять их размеры в процессе работы программы:
int [] k={3, 4};
System.out.println(k[1]);
k=new int[]{2, 6, -55};
System.out.println(k[2]);
В указанном фраменте в массиве k сначала 2 элемента, а затем - 3.