На этом шаге мы рассмотрим массивы
Массив - это структура данных, в которой хранятся величины одинакового типа. Доступ к отдельному элементу массива осуществляется по целочисленному индексу. Массив объявляется следующим образом: сначала указывается тип массива, т.е. тип элементов, содержащихся в нем, затем следует пара пустых квадратных скобок, а после них - имя переменной. Ниже приведено объявление массива, состоящего из целых чисел.
int[] a;
Но для того чтобы инициализировать массив, одного объявления не достаточно. Для того чтобы инициализировать массив нужно выделить место в памяти для хранения элементов массива. Это можно сделать с помощью операции new. Ниже приведен пример использования операции new:
a = new int[100];
В данном примере выделяется память для хранения массива, состоящего из 100 целых чисел. Отметим, что нумерация индекса массива в Java начинается с 0, а не с 1. В данном примере нумерация индексов массива равна 0..99. Длина массива не обязательно должна быть постоянной. Например:
a = new int[n];
В данном примере создается массив из n элементов.
После того, как массив создан, можно инициализировать массив данными (числами, символами и т.д.). При работе с массивами удобней использовать циклы, т.к. инициализировать поэлементно массив большой длины не очень удобно. Ниже приведены примеры программ, в которых используется массивы.
Пример 1. Создать массив чисел от 1 до 10 и вывести его содержимое на экран.
public class PrimerFirst { public static void main(String[] args) { /*Объявление и создание массива, состоящего из 10 целых чисел*/ int[] a = new int[10]; /*Инициализация массива числами от 1 до 10*/ for (int i = 0; i < 10; i++) { a[i] = i + 1; } /*Вывод содержимое массива на экран*/ for (int i = 0; i < 10; i++) { System.out.print(a[i] + " "); } } }
Проект можно взять здесь.
Рис. 1. Вывод программы
Пример 2. Создать массив из 10 произвольных чисел и вывести минимальное и максимальное значение в массиве.
public class PrimerSecond { public static void main(String[] args) { /*Объявление и создание массива, состоящего из 10 произвольных чисел из диапазона [0;99]*/ int[] a = new int[10]; for (int i = 0; i < 10; i++) { a[i] = (int)(Math.random() * 100); /*Получение произвольного числа из диапазона [0;99]*/ } int min = a[0]; /*Предположим, что минимальный элемент - это первый элемент.*/ int max = a[0];/*Предположим, что максимальный элемент - это первый элемент.*/ for (int i = 0; i < 10; i++) { /*Если текущее минимальное значение больше i-ого элемента массива, то*/ if (min > a[i]) { min = a[i];/*изменим минимальное значение на значение i-ого элемента*/ } /*Если текущее максимальное значение меньше i-ого элемента массива, то*/ if (max < a[i]) { max = a[i];/*изменим макс. значение на значение i-ого элемента*/ } } /*Выведим на экран содержимое массива*/ System.out.print("array: "); for (int i = 0; i < 10; i++) { System.out.print(a[i] + " "); } System.out.println(); System.out.println("min value: " + min); /*Выведим минимальное значение*/ System.out.println("max value: " + max); /*Выведим максимальное значение*/ } }
Проект можно взять здесь.
Рис. 2. Вывод программы
Пример 3. Пусть у нас создан произвольный массив из 10 элементов. Нужно посчитать есть ли в массиве значение x, и если есть, то нужно указать количество вхождения этого значения.
public class PrimerThird { public static void main(String[] args) { int x = 10; /*Создание и инициализирование массива произвольными числами*/ int[] a = new int[10]; for (int i = 0; i < 10; i++) { a[i] = (int)(Math.random()*20); } int count = 0; /*Здесь храниться количество вхождения элемента x*/ for (int i = 0; i <10; i++) { if (a[i] == x) { /*Если i-й элемент равен искомому x, то*/ count++; /*увеличиваем количество на 1*/ } } /*Выводим на экран содержимое массива*/ System.out.print("Array: "); for (int i = 0; i < 10; i++) { System.out.print(a[i] + " "); } System.out.println(); if (count == 0) { /*Если количество вхождения равно 0, то*/ /*значит нет элемента со значением x*/ System.out.println("value " + x + " is not found"); } else { /*иначе, выводим сообщение, что элемент найден*/ System.out.println("value " + x + " is found"); /*и выводим количество вхождения*/ System.out.println("count: " + count); } } }
Проект можно взять здесь.
Рис. 3. Вывод программы
На следующем шаге мы рассмотрим операции над массивами