Новини високих технологій
» » Java Array. Масиви в Java. Java для початківців

Java Array. Масиви в Java. Java для початківців

2-12-2016, 14:45
4 409
Масив (англ. array) являє собою потужний інструмент, який дозволяє працювати з великою кількістю даних. Очевидно, що якщо вам у процесі роботи вашого коду де потрібно зберегти, наприклад, 100 значень, то робити для цього таку ж кількість змінних як мінімум нерозумно. Масив дозволяє зберігати велику кількість значень під одним іменем і звертатися до них за відповідним індексом. Поняття масивів є наріжним каменем у вивченні курсу Java для початківців. Адже вони є основою для багатьох структур даних.


Оскільки Java це, насамперед, ООП, порівняно з масивами в інших мовах програмування java array має одну відмітну особливість – вони представляються у вигляді об'єктів. Крім інших переваг, це позбавляє від потреби стежити за очищенням пам'яті, оскільки вона звільняється автоматично.

Створення і маніпуляції одновимірними масивами

Одновимірний масив представляється собою класичний Java array є сукупністю пов'язаних загальним ім'ям елементів, кожному з яких відповідає певний індекс. Спосіб оголошення масиву наведено на малюнку нижче.
Java Array. Масиви в Java. Java для початківців
Спочатку оголошується тип Java array, який визначає тип значень, що зберігаються в ньому. Це може бути будь-який дійсний до Java тип даних. Далі йдуть ім'я масиву і квадратні дужки, повідомляють компілятору, що ця змінна є масивом. Зверніть увагу на важливий факт. Квадратні дужки можна ставити як після базового типу масиву, так і після імені масиву. Після знака рівності вказується оператор new, ініціює виділення пам'яті під масив (так само, як і у випадку з об'єктами), тип елементів, які будуть зберігатися в ньому (повинен бути сумісний з базовим типом, оголошеним раніше), і, нарешті, їх кількість, вказана у квадратних дужках.


Нумерація елементів в Java array починається з 0. Так, індекс першого елемента в даному масиві буде дорівнює 0 а шостого – 5. Щоб звернутися до конкретного елементу масиву, наприклад, п'ятого, досить вказати ім'я масиву та індекс елемента в квадратних дужках поруч з ім'ям. Таким чином можна присвоювати значення елементу, так і витягувати його. Проте слід бути уважним, оскільки якщо передати індекс, за яким не існує елемента, то виникне помилка.

Багатовимірні масиви в Java

Багатовимірні масиви являють собою ряди одновимірних, на які посилаються елементи інших масивів. Іншими словами, це масиви масивів. Найбільш простими серед них є двовимірні. На їх прикладі ми і спробуємо розібратися з поняттям. Для наочності на малюнку нижче наведено синтаксис і схема, що описує структуру двовимірного масиву.
Як бачимо, синтаксис не особливо відрізняється від одновимірних масивів. Давайте розберемо структуру. У перших дужках ми виділили місце під 5 елементів. Ці елементи є нічим іншим як посиланнями на окремі масиви. При цьому розмір кожного з них визначено числом у других дужках. По суті, аналогом двовимірних масивів в математиці є матриці. Зверніть увагу, що крім елементів, в пам'яті виділяється окреме місце, де зберігається значення довжини масиву (length). Як правило, робота з багатовимірними масивами здійснюється за допомогою вкладених циклів for.

Нерегулярні масиви

Двовимірний масив є масивом масивів. Це ми вже з'ясували. Але чи можуть масиви, що містяться в ньому, мати різну довжину? Відповідь – так, можуть. Для цього в Java передбачена можливість оголошувати двовимірний масив спеціальним чином. Наприклад, ми хочемо створити двовимірний масив, який зберігав би в собі три одновимірних масивів довжиною 2 3 і 4 відповідно. Оголошується він наступним чином: intarr[] []= newint[3] []; Зверніть увагу, що ми не вказали кількість у других дужках. Визначення розміру масивів у arr робиться так: arr[0]= new int[2]; arr[1]= new int[3]; arr[2]= newint[4]; Звертаючись до елемента під індексом 0 що вказує на перший масив, ми оголошуємо його з розмірністю 2. Під елементом з індексом 1 буде зберігатися масив розмірністю 3 і так далі. Все досить просто.

Альтернативний синтаксис оголошення java array

Ініціалізувати масиви можна і безпосередньо при їх створенні. Це досить просто.
Зверніть увагу на оголошення масивів jerseyNumber і playerName. У випадку з двовимірними масивами дане оголошення виглядає так: int[] []arr = { {123}, {456}, {789} } Для цього замість оператора new відкриваються фігурні дужки, в яких через кому йде перерахування всіх елементів. Java в цьому випадку автоматично виділяє пам'ять під них і індексує їх відповідним чином.

Допоміжний клас Arrays

Для роботи з такими сутностями, як масиви в Java, в пакеті java.util є спеціальний клас Arrays, який надає безліч статичних методів, що значно полегшують операції з ними. Перелік основних методів представлений на малюнку нижче.
Розберемо деякі корисні Java array методи: - copyOf (масив, довжина) – повертає копію переданого масиву відповідної довжини. Якщо передана довжина більше оригінального масиву, то всі «зайві» елементи заповнюються значенням за замовчуванням (0 якщо простий тип, null , якщо контрольний).
- copyOfRange (масив, перший індекс, останній індекс) – не зазначений на малюнку, але корисний метод. Він копіює частину переданого масиву, визначену відповідними індексами, починаючи з першого і закінчуючи останнім. - sort (масив) – сортує елементи масиву за зростанням. - fill (масив, значення) – заповнює переданий масив відповідним значенням. - binarySearch (масив, значення) – повертає індекс, під яким елемент з відповідним значенням знаходиться в переданому відсортованому масиві. Якщо ж такий елемент відсутній, то повертається від'ємне число. Оскільки статичні методи, то для їх виклику не потрібно створювати екземпляр класу Arrays. Вони викликаються безпосередньо з нього: Arrays.sort(arr).

Висновок

Ми розглянули найбільш важливі аспекти щодо масивів, і для тих, хто тільки приступає до вивчення Java для початківців, цього вистачить для базового розуміння такої сутності, як масив, та основних прийомів роботи з ним. Звичайно, практика дасть більше розуміння роботи даного інструменту. Поетом не полінуйтеся зробити кілька вправ, маніпулюючи масивами різними способами. Допоміжний клас Array Java використовується вже у «бойових» умовах, тому для початку рекомендується вчитися виробляти всі основні операції з масивами вручну.
Цікаво по темі
BigInteger Java: робота з великими числами
BigInteger Java: робота з великими числами
Для роботи з числами, які не можуть зберігається в стандартних примітивних типів, в Java є спеціальний клас BigInteger. Він не тільки інкапсулює їх
Нескінченний for (Java) цикл
Нескінченний for (Java) цикл
Одними з ключових елементів ядра мови Java є цикли, що дозволяють виконувати повторювані операції певну кількість разів. Даний інструмент значно
Java Узагальнення: опис і методи
Java Узагальнення: опис і методи
Узагальнені типи або узагальнення в Java представляють собою потужний інструмент уніфікації коду та забезпечення безпеки типів даних. У даній статті
Java: InputStream. Потоки введення
Java: InputStream. Потоки введення
У даній статті ми розглянемо базовий клас для потоків вводу даних в Java - InputStream. Розберемо основну його функціональність і реалізації, які
Рейтинг мов програмування 2016
Рейтинг мов програмування 2016
У сучасному світі програмування є однією з найбільш процвітаючих галузей технічного прогресу. Необхідність роботи з програмами не піддається сумніву,
Spring Java: засади та уроки для початківців
Spring Java: засади та уроки для початківців
На сьогоднішній день практично для всіх додатків використовують скриптова метод програмування – Spring Java. Основна перевага цієї мови полягає в