Найти тему
yagdmitrij

Массивы java

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

int[] masiv=new int [10]

В первой части выражения (до знака «равно») объявляется массив с именем masiv типа int. Обратите внимание, что массив только объявляется, но пока «не существует». И только уже после знака «равно», точнее с помощью оператора new, в памяти выделяется область под массив данных типа int и размером 10 «ячеек» или «ящиков»). С этого момента можно сказать, что массив обрел «физическое состояние». Но вернемся к нашим домикам, мостам и....теперь эшелонам. Если представить, что эшелон - это массив, состоящий из вагонов, которые загружены зерном, то мы имеем массив ЭШЕЛОН с типом ЗЕРНОВОЙ, который только существует в наших планах:

зерновой [] эшелон;

Затем мы начинаем формировать в реальности массив эшелона с зерном в количестве 5-ти вагонов:

зерновой [] эшелон= new зерновой[5].

Вагоны пронумерованы, начиная с «0», что является индексом массива. Загадка: вагонов 5, а нумерация только до 4?). К данным массива обращаются с помощью индекса. Так как все вагоны опечатаны, и понять, что в них находится, невозможно. Однако нам нужно сообщить на первый разгрузочный пункт, что требуется разгрузить вагон с рисом. Для этого отправляем сообщение с нужным индексом вагона эшелона…массива:

эшелон[3] - что будет соответствовать вагону с рисом.

одномерный массив
одномерный массив

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

Трехмерный массив это …кубик-рубик) или 3D. Ну а четырех… и далее, трудно себе представить.

На миг представим из мира фантастики, что вагоны в нашем зерновом эшелоне многоэтажные. Тогда обращение к вагону с рисом будет уже совсем другое.

эшелон [1][3];

многомерный массив
многомерный массив

Вначале записывается в квадратных скобках индекс строки, а затем столбца. Чтобы было больше понятно, распишем еще вагоны:

эшелон[0][0]=перловка;

эшелон[0][2]=просо;

эшелон[1][0]=ячмень;

Теперь рассмотрим работу одномерных и многомерных массивов в реальности.

Работа одномерного массива:

одномерный массив
одномерный массив

…и многомерного. Обратите внимание на альтернативную запись массивов, без оператора new и к тому же он сразу инициализируется значениями. Такой способ записи несложно применить и к одномерным массивам.

многомерный массив
многомерный массив

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

И первый метод, который рассмотрим из класса Arrays пакета java.util, это метод алгоритма двоичного поиска нужного значения в массиве целых чисел. Примечательно, что без предварительной сортировки метод не работает. Поэтому вначале нужно применить к массиву метод сортировки.

ort(int[] a)  binarySearch(int[] a, int key)
ort(int[] a) binarySearch(int[] a, int key)

Здесь мы применили два метода: сортировка массива sort(int[] a) и метод с алгоритмом двоичного поиска целых чисел binarySearch(int[] a, int key).

int[] copyOf(int[] original, int newLength) –метод копирует указанный массив original, заполняя нулями или срезая его размер в зависимости от параметра newLength. Рассмотрим работу данного метода с различными значениями параметра newLength. Обратите внимание на переменную length, которая возвращает размер массива.

int[] copyOf(int[] original, int newLength)
int[] copyOf(int[] original, int newLength)

static String toString(int[] a)

Метод toString выводит строковое представление содержимого массива. Если в предыдущем примере содержимое массива мы выводили с помощью цикла, о которых пойдет речь в ближайших статьях, то сейчас мы это сделаем с помощью метода toString(int[] a).

static boolean equals(int[] a, int[] a2)

Данный метод сравнивает два массива и выводит результат: true или false.

static boolean equals(int[] a, int[] a2)  toString(int[] a)
static boolean equals(int[] a, int[] a2) toString(int[] a)

Подведем итог. Мы рассмотрели различные массивы и исследовали принцип работы некоторых их методов, и пришли к выводу, что массивы java представляют собой очень интересные объекты, качественно влияющие на разработку программных продуктов.