Массивы в Java

массивы и матрицы в java

Сегодня поговорим о массивах в языке Java. Тема довольно важная и интересная с точки зрения программирования.

Все предыдущие темы, который мы рассматривали: Условные операторы, циклы являются основами программирования. С их изучения Вы будете начинать учить любой другой язык. Массивы тоже относятся к такой теме. На чем бы Вы не решили начать программировать, Вы вряд ли сможете обойтись без данной структуры данных.

Структура статьи:

Что такое массив в Java?

Массив (array)— это структура данных, которая предназначена для хранения однотипных данных. Представьте что Вы выстроили некоторое количество людей в шеренгу и каждому вручили в руки табличку с порядковым номером.

Когда Вам например будет нужен человек под номером 5, Вы просто позовете его по номеру. А если Вам нужно будет узнать сколько людей в шеренге — можно посмотреть на порядковый номер последнего человека в строю. Удобно не правда?

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

Только в программировании принято начинать нумерацию не с единицы а с нуля. Первый елемент в массиве будет иметь порядковый номер 0. Еще в программировании говорят не «порядковый номер», а «индекс».

Допустим, Вам нужно создать 5 целочисленных переменных и задать им некоторое значение. Как Вы это будете делать? Не зная массивов, Вы скорее всего начнете писать вот так: int a = 2, b = 3, c = 5, d = 21, e = 2.

Имея в арсенале такой тип данных как массивы, Вы можете писать так: int a = {2, 3, 5, 21, 2}.

Объявление, создание, инициализация

Перед тем как массив использовать, его нужно:

  1. Объявить;
  2. Создать;
  3. Инициализировать.

Запомните это порядок действий и никогда не нарушайте его.
При объявлении нужно сначала указать какой тип данных будет там храниться.

Все дело в том, что Java строго типизированный язык программирования. Это означает что Вы не можете объявить переменную типа строка (String), а потом присвоить этой переменной числовое значение.

Например такой код работать не будет: String a = 1;

Именно поэтому при объявлении массива сначала указывают тип данных который он будет принимать. Дальше идут [] (квадратные скобки) и имя переменной. Или имя переменной, квадратные скобки. Разницы не будет:

char nameOfArray[], int anotherName [], char [] nameOfArr, String [] p — это все правильные варианты для объявления массивов.

После того, как array был объявлен, его нужно создать. Дело в том, что в массив это объект. Объекты в java хранятся в памяти отдельно от переменных и примитивных типов. Для каждого объекта выделяется память в программе. В которой он будет находиться до того момента пока будет нужен. Чтобы указать программе что мы резервируем место для объекта нужно воспользоваться ключевым словом new.

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

int [] a = new int[10]

Выше Вы можете видеть пример создания и инициализации массива. Сразу после знака равно (=) идет создание array с именем a. В квадратных скобках указана размерность (количество элементов).

Сразу после создания, в объект будут записаны значения по умолчанию. Для численного массива это ноль (0), для объекта — null, для booleanfalse.

Для того, чтобы поменять значение по умолчанию нужно массив инициализировать (заполнить данными). По сути, после того как Вы создали массив (запись после знака равно), он уже инициализировался. Просто данными по умолчанию.

Если Вы хотите поменять эти данные — сделать это довольно просто: нужно обратиться по индексу массива к его элементу и присвоить ему значение. Например:

       int[] intArray; //объявление массива
        intArray = new int[10];//инициализация массива
        intArray[0] = 1;//первому элементу массива даем значение 1
        intArray[1] = 2;//второму значение 2
        intArray[6] = 7;//остальные значения массива, которым мы
        //не задали значений будут по умолчанию 0

В квадратных скобках на примере выше указан индекс, а после знака равно — новое значение элемента по данному индексу.

Есть еще один способ инициализации:

char [] charArray = new char[]{'a', 'b', 'c'};

Таким образом мы объединяем объявление, создание, инициализацию в одну строку. При таком подходе можно даже опустить new char[]:

char [] charArray = {'a', 'b', 'c'};

Методы по работе с массивами в языке Java

По сути дела, с элементами массивов можно делать все то же самое что и с другими объектами и примитивными типами.

Допустим, если элементы массива — целочисленный тип данных int, то мы можем добавлять, отнимать, умножать и применять любые другие операции которые мы применяем к числам. То же самое касается строк и других объектов которые находятся в нашем объекте.

В массива есть длина (length). Чтобы ее узнать достаточно вызвать переменную length. Вот как это делается:

char [] charArray = {'a', 'b', 'c'};
int arrayLength = charArray.length;
System.out.println(arrayLength);

В результате, после вызова length в переменную arrayLength будет записана длина нашего charArray. Если мы ее выведем в консоль — получим значение 3.

Чтобы не работать с элементами массива «по одному» можно прибегнуть к помощи циклов. Именно управляя индексом цикла можно получать элементы:

public class ArraysExample {
    public static void main(String[] args) {
        char [] charArray = {'a', 'b', 'c'};
        int arrayLength = charArray.length;
        System.out.println(arrayLength);
        int[] intArray; //объявление массива
        intArray = new int[10];//инициализация массива
        intArray[0] = 1;//первому элементу массива даем значение 1
        intArray[1] = 2;//второму значение 2
        intArray[6] = 7;//остальные значения массива, которым мы
        //не задали значений будут по умолчанию 0

        System.out.println(intArray.length);//длина массива - это целое число, которое
        //соответствует значению в квадратных скобках при инициализации.
        System.out.println("##########################################");
        for (int i = 0; i < intArray.length; i++) {
            System.out.println("Array index " + i + " value: " + intArray[i]);
        }
        System.out.println("##########################################");
        for (int i = 0; i < intArray.length; i++) {
            intArray[i] = 45;//каждый элемент массива может быть изменен
            System.out.println("Array index " + i + " value: " + intArray[i]);
        }
    }
}

В результате запуска примера выше мы увидим такой результат:

Результат выполнения работы программы массив в Java
Результат выполнения работы программы массив в Java

Очень часто стоит задача вывести все или часть элементов на экран. Для этого я подготовил отдельную статью: Вывод массива java

Еще советую посмотреть материалы по сортировке массива. Данная тема тоже достаточно актуальна и полезная. Особенно для начинающих программистов.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *