Мы помогаем ИТ-компаниям оптимально настроить процессы менеджмента и разработки

Найти

(067) 536-87-70

(095) 492-65-67

 

Массивы

06.08.19

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

Массив - это объект-контейнер, который хранит фиксированное число переменных одного типа.

Проинициализировать наш контейнер можно несколькими способами:

     int [] arr = new int [4]; //1
     int arr2 [] = new int [2]; //2
     int [] arr3 = {1, 2, 3, 9}; //
     int [] arr4 = new int [] {1, 2, 3, 9}; //4

Стоямба! (сфокусируемся на некотором моменте обсуждаемой темы более детально - прим. ред.). Как можно заметить в 1 и 2 случае разные способы объявления массива (можно менять местами имя массива и квадратные скобки), но одинаковые способы инициализации. В случаях 1 и 3 разные способы инициализации: в arr мы просто говорим, что в контейнере будет 4 места для переменных типа int, в arr3 же мы сразу же заполняем контейнер четырьмя числами. В последствии эти четыре числа можно заменить на другие, но, как уже упоминалось, массив не может менять свой размер. Последний, четвертый случай, тоже имеет место быть.

Поработаем с массивом arr:

      int [] arr = new int [4];
      arr[0] = 3; // сначала в какую ячейку [0], затем какое значение положить 3
      arr[1] = 11;
      System.out.println(arr[1]); //11
      System.out.println(arr.length); //4 - длина массива:
Значение последнего индекса. В нашем случае последний индекс это 3:
      System.out.println(arr[arr.length-1]); //0 - значение по умолчанию
Также существуют многомерные массивы:
       int [] [] array= {{1, 2}, {3, 9}}; // двумерный массив


массивЧтобы получить отсюда цифру 3 нам нужно выбрать сначала необходимый индекс подмассива (на схеме это X), а затем индекс элемента в подмассиве (на схеме это Y):

 

   System.out.println(array[1] [0]); //3 - не забываем, что отсчет начинается с 0.

По такому же принципу работают и трехмерные и т.д. массивы, просто добавляются индексы.

А теперь используем предыдущие уроки:

    YellowCorella [] birdcage = new YellowCorella [3];
    YellowCorella pinki = new YellowCorella (2, “Pinki”);
YellowCorella twinkie = new YellowCorella (4, “Twinkie”);
Dog bob = new Dog (“Bob”); //Наш старый друг
   birdcage[0] = pinki; //pinki в клетке
   birdcage[1] = twinkie; //twinkie тоже в клетке
   birdcage[2] = bob; //ошибка

Боб пытается залезть в клетку. Но Боб собака и не может залезть в клетку, предназначенную для птиц. И не смотрите в его грустные глаза, он определенно может поспать в любом другом месте, кроме как в клетке для птиц.bob

Если успокоить Боба и сделать так, чтобы он перестал лезть в клетку, то можно услышать:

   birdcage[1].sing(); //”Pik puk pik puk”