JavaRush /Блог /Java Developer /Массивы. Структура данных. Начало работы с массивами.
Royalflesh
29 уровень
Москва

Массивы. Структура данных. Начало работы с массивами.

Статья из группы Java Developer
Массивы. Структура данных. Начало работы с массивами. Что такое массив(array)? Массив — это структура данных, в которой упорядоченно хранится множество элементов одного типа. Его можно представить как парковку, на которой разметкой очерчено каждое парковочное место, которому присвоен определенный адрес. Машины могут находится строго на парковочных местах. Каждое место имеет свой адрес, и по этому адресу можно узнать какая именно машина находится на данном месте. Массивы. Структура данных. Начало работы с массивами. - 1 Важно так же отметить, как массив хранится в памяти компьютера. Часть памяти выделяется под хранение имени массива. Имя массива хранит в себе ссылку на объект самого массива. Память для хранения значений в массиве выделяется непрерывная, то есть элементы в памяти хранятся друг за другом в строгом порядке. Это сильно отличает массив от списков или коллекций. Массивы. Структура данных. Начало работы с массивами. - 2 Если попробовать обратиться к элементу массива, который будет за пределами его длины, то произойдет ошибка ArrayIndexOutOfBoundsException Как же создать массив? Массив в Java создается по следующей формуле. Вначале нам нужно указать тип данных элементов, которые должны будут храниться в нашем массиве, затем мы должны поставить знак [] -этот специальный знак показывает компилятору, что мы создаем именно массив, далее указываем имя массива, затем пишем ключевое слово new, указываем еще раз тип элементов массива и в конце в квадратных скобках указываем длину массива. Давайте напишем пример создания массива целых чисел.

Int [ ] array = new int [5];
А теперь создадим массив строк.

String [] str= new String [3];
Массив — это объект, поэтому он объявляется при помощи ключевого слова new. Важно отметить, что после знака равно в квадратных скобках указана длина нашего массива. Длина массива — это количество элементов, которые хранятся в нем. При создании массива типа int мы указали, что его длина равна 5, а при создании строкового массива 3. Тут важно отметить одну важную деталь, что отсчет ячеек массива начинается с нуля! Отлично! Массивы мы создали, а как же нам теперь присвоить значение элементу массива? К примеру, мы хотим присвоить элементу массива по индексом ноль значение 5. Как это сделать? Сделать это легко. Нужно указать имя массива, его индекс в квадратных скобках, поставить знак равно и указать значение. Пример.

array[0]=5;
Теперь под индексом ноль в массиве array хранится значение 5. Так же мы можем проинициализировать весь массив сразу.

Int []array = {5,1,7,4,2};
Одним из ключевых параметров массива, является его длина. Длина массива — это неизменяемая величина, которая указывает на количество элементов массива. После инициализации массива её поменять нельзя! Так же длину массива можно получить с помощью команды length. Рассмотрим пример.

int []myArray=new int [10];
System.out.println(myArray.length);
В данном примере мы создали массив с именем myArray, его длина равна 10. Как же получить его длину? Самый простой способ использовать команду length. В метод System.out.println() введем параметр myArray.length. Получим длину массива. Как выводить значения массива на экран? Для вывода значений массива на экран используют циклы. Вообще циклы очень часто идут в связке работы с массивами. К примеру, для ввода значений массива с клавиатуры во время работы программы, для вывода значений массива на экран, для вывода значений в порядке возрастания или убывания и так далее. Многие из этих операций уже оптимизировали (был придуман специальный класс Arrays.) Итак,разберем пример вывода значений массива на экран.

public class main {
    public static void main(String[] args) {
         int []myArray;        
       myArray= new int[]{1, 5, 4, 7, 9, -7, 8, -2, 1, 5, 3};
        for (int i = 0; i < myArray.length ; i++) {
            System.out.print(myArray[i]+" ,");
        }
        System.out.println();
    }
}
Что же мы сделали в этой программе? 1. Объявили массив. 2. Проинициализировали массив значениями. 3. В цикле for() от нуля и до i< myArray.length мы вывели все значения массива на экран. Разберем один очень важный вопрос. Почему наш цикл идет именно до i< myArray.length? Дело в том, что отсчет по индексам массива начинается с нуля, а не с 1. Длина нашего массива равна 11. От 0 до 10 включительно. Так как myArray.length=11, а отсчет начинается с 0, то цикл должен быть с 0 и до 10. Так и получается, мы пройдем по всему массиву, до последнего элемента, выведем его на экран, и программа завершится. Теперь рассмотрим следующий вариант. Как вывести все элементы, но уже в обратном порядке? Вывести элементы в обратном порядке можно следующим способом. Для начала отсчет должен быть с последнего элемента, а именно myArray.length-1(так как номер индекса элемента у нас 10) до последнего, значит i>=0, и последнее, элементы массива идут в убывающем порядке, значит i--. Теперь покажем это на примере.

        for (int i = myArray.length-1; i >=0 ; i--) {
            System.out.print(myArray[i]+" ,");
        }
        System.out.println();
Как с клавиатуры ввести длину массива и проинициализировать его значениями? Для того, чтобы сделать данные действия нужно подключить библиотеку Scanner. Далее необходимо инициализировать переменную, которая будет хранить значение длины массива, затем в цикле мы будем присваивать каждой i-ой ячейке массива значение. А как вывести эти значения на экран, мы уже знаем.


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner console=new Scanner(System.in);
        System.out.println("enter the length of the array");
        int n=console.nextInt();
        int[]myArray=new int[n];

        for (int i = 0; i < myArray.length ; i++) {
            System.out.println("enter the value of the i-th element of the array "+i+" element");
            myArray[i]=console.nextInt();
        }
        System.out.println("Displaying array elements on the screen");

        for (int i = 0; i <myArray.length ; i++) {
            System.out.print(myArray[i]+" ,");
        }
        System.out.println();
    }
}

Итак, разберем наш код. Вначале мы импортировали библиотеку класса Scanner, она нам нужна чтобы подключить консоль для ввода длины массива и ввода значений в ячейки массива с клавиатуры. Далее мы инициализируем переменную n, которая отвечает за длину нашего массива и помещаем ее в int[]myArray=new int[n]; Теперь у нашего массива появилась длина и мы можем присваивать значения элементам массива. Мы создали цикл и в теле цикла присваиваем значения элементам массива числами с клавиатуры myArray[i]=console.nextInt(); Для того, чтобы вывести значения массива на экран, мы должны сделать еще один цикл. Собственно, что мы и проделали в данном примере. В следующей статье мы разберем какие задачи можно решать с использование массива, и какие есть интересные методы у класса Arrays.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Royalflesh Уровень 29
24 сентября 2024
Вашему вниманию предоставляю статью "Структура данных массива. Начало работы с массивами." в дальнейших статьях постараюсь раскрыть тему массивов глубже.