У Java масив є важливою лінійною структурою даних, яка дозволяє нам зберігати кілька значень одного типу.
- Масиви в Java є об’єктами, як і всі інші об’єкти в масивах Java, неявно успадковані від класу java.lang.Object. Це дозволяє вам викликати методи, визначені в Object (такі як toString() equals() і hashCode()).
- Масиви мають вбудовану властивість length, яка визначає кількість елементів у масиві
public class Geeks { public static void main(String[] args) { // initializing array int[] arr = {40 55 63 17 22}; // size of array int n = arr.length; // traversing array for (int i = 0; i < n; i++) System.out.print(arr[i] + ' '); } }
Вихід
40 55 63 17 22
Ключові особливості масивів
- Зберігати примітиви та об’єкти: Масиви Java можуть містити як примітивні типи (наприклад, int char boolean тощо), так і об’єкти (наприклад, String Integer тощо).
- Безперервний розподіл пам'яті Коли ми використовуємо масиви примітивних типів, елементи зберігаються в безперервних розташуваннях. Для непримітивних типів посилання на елементи зберігаються в безперервних розташуваннях.
- Нульове індексування: Перший елемент масиву має індекс 0.
- Фіксована довжина: Після створення масиву його розмір фіксується; ми не можемо це змінити.
Примітивне представлення масиву в Java
Непримітивне представлення масиву в JavaОснови роботи з масивами в Java
1. Оголошення масиву
Загальна форма оголошення масиву така
// Спосіб 1:
int arr[];відсортований список масивів у java// Спосіб 2:
int[] arr;
Тип елемента визначає тип даних кожного елемента, який складається з масиву. Подібно до масиву цілих чисел, ми також можемо створити масив інших примітивних типів даних, таких як char float double тощо, або визначених користувачем типів даних (об’єктів класу).
Примітка: Це те, як ми можемо створити змінну масиву. Фактичного масиву не існує. Він просто повідомляє компілятору, що ця змінна (Int Array) буде містити масив цілочисельного типу.
2. Ініціалізація масиву в Java
При оголошенні масиву створюється лише посилання на масив. Ми використовуємо new для виділення масиву заданого розміру.
int arr[] = новий int[розмір];
- Оголошення масиву зазвичай є статичним, але якщо розмір не визначено, розмір масиву має динамічний розмір.
- Пам'ять для масивів завжди динамічно розподіляється (у сегменті купи) у Java. Це відрізняється від C/C++, де пам’ять може бути виділена статично або динамічно.
- Елементи в масиві, виділеному new, будуть автоматично ініціалізовані нулем (для числових типів), false (для логічних типів) або null (для посилальних типів).
Літерал масиву в Java
У ситуації, коли розмір масиву та змінні масиву вже відомі, можна використовувати літерали масиву.
рядок jsonobject
// Оголошення літералу масиву
int[] arr = new int[]{ 12345678910 };
- Довжина цього масиву визначає довжину створеного масиву.
- Немає необхідності писати нову частину int[] в останніх версіях Java.
3. Змініть елемент масиву
Щоб змінити елемент, призначте нове значення певному індексу. Індекс починається з 0 і закінчується на (загальний розмір масиву) -1.
// Зміна першого елемента на 90
arr[0] = 90;
4. Довжина масиву
Ми можемо отримати довжину масиву за допомогою властивості length:
// Отримання довжини масиву
int n = arr.length;
5. Доступ до всіх елементів масиву та їх оновлення
- До всіх елементів масиву можна отримати доступ за допомогою Java for Loop.
- Доступ до кожного елемента в масиві здійснюється через його індекс.
Доступ і оновлення всіх елементів масивуПрограма Java для ілюстрації створення масиву цілих чисел поміщає деякі значення в масив і друкує кожне значення в стандартний вивід
Javaclass Geeks { public static void main(String[] args) { // declares an Array of integers. int[] arr; // allocating memory for 5 integers. arr = new int[5]; // initialize the elements of the array // first to last(fifth) element arr[0] = 2; arr[1] = 4; arr[2] = 8; arr[3] = 12; arr[4] = 16; // accessing the elements of the specified array for (int i = 0; i < arr.length; i++) System.out.println('Element at index ' + i + ' : ' + arr[i]); } }
Вихід
Element at index 0 : 2 Element at index 1 : 4 Element at index 2 : 8 Element at index 3 : 12 Element at index 4 : 16
Масиви об'єктів в Java
Масив об’єктів створюється як масив елементів даних примітивного типу
приклад : Тут ми беремо клас студента та створюємо масив Student із п’ятьма об’єктами Student, які зберігаються в масиві. Об’єкти Student мають бути створені за допомогою конструктора класу Student, а їхні посилання мають бути призначені елементам масиву.
10 мл до унційJava
class Student { public int roll_no; public String name; Student(int roll_no String name){ this.roll_no = roll_no; this.name = name; } } public class Geeks { public static void main(String[] args){ // declares an Array of Student Student[] arr; // allocating memory for 5 objects of type Student. arr = new Student[5]; // initialize the elements of the array arr[0] = new Student(1 'aman'); arr[1] = new Student(2 'vaibhav'); arr[2] = new Student(3 'shikar'); arr[3] = new Student(4 'dharmesh'); arr[4] = new Student(5 'mohit'); // accessing the elements of the specified array for (int i = 0; i < arr.length; i++) System.out.println('Element at ' + i + ' : { ' + arr[i].roll_no + ' ' + arr[i].name+' }'); } }
Вихід
Element at 0 : { 1 aman } Element at 1 : { 2 vaibhav } Element at 2 : { 3 shikar } Element at 3 : { 4 dharmesh } Element at 4 : { 5 mohit } Що станеться, якщо ми спробуємо отримати доступ до елементів поза розміром масиву?
JVM викидає ArrayIndexOutOfBoundsException, щоб вказати, що доступ до масиву здійснювався за допомогою недопустимого індексу. Індекс є або від’ємним, або більшим або дорівнює розміру масиву.
Наведений нижче код показує, що станеться, якщо ми спробуємо отримати доступ до елементів поза розміром масиву:
Javapublic class Geeks { public static void main(String[] args) { int[] arr = new int[4]; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; System.out.println( 'Trying to access element outside the size of array'); System.out.println(arr[5]); } }
Вихід:
Виведення елементів поза розміром масивуПередача масивів у методи
Як і змінні, ми також можемо передавати масиви методам. Наприклад, наведена нижче програма передає масив методу sum для обчислення суми значень масиву.
приклад:
Перетворення рядка в int у javaJava
public class Geeks { // Driver method public static void main(String args[]) { int arr[] = { 3 1 2 5 4 }; // passing array to method m1 sum(arr); } public static void sum(int[] arr) { // getting sum of array values int sum = 0; for (int i = 0; i < arr.length; i++) sum += arr[i]; System.out.println('sum of array values : ' + sum); } }
Вихід
sum of array values : 15
Пояснення
- Ця програма на Java демонструє, як передати масив у метод.
- Цілочисельний масив arr оголошується та ініціалізується в основному методі.
- Метод sum() викликається з arr як аргументом.
- Усередині методу sum() усі елементи масиву додаються за допомогою циклу for.
- Остаточна сума потім друкується на консолі.
Повернення масивів із методів
Як зазвичай, метод також може повертати масив. Наприклад, наведена нижче програма повертає масив із методу m1.
приклад:
Javaclass Geeks { // Driver method public static void main(String args[]) { int arr[] = m1(); for (int i = 0; i < arr.length; i++) System.out.print(arr[i] + ' '); } public static int[] m1() { // returning array return new int[] { 1 2 3 }; } }
Вихід
1 2 3
Переваги Java Arrays
- Ефективний доступ: Доступ до елемента за його індексом є швидким і має постійну часову складність O(1).
- Керування пам'яттю: Масиви мають фіксований розмір, що робить керування пам’яттю простим і передбачуваним.
- Організація даних: Масиви допомагають структурувати дані, що полегшує керування пов’язаними елементами.
Недоліки Java Arrays
- Фіксований розмір: Після створення масиву його розмір не можна змінити, що може призвести до втрати пам’яті, якщо розмір переоцінений, або недостатнього обсягу пам’яті, якщо він недооцінений.
- Однорідність типу: Масиви можуть зберігати лише елементи одного типу даних, що може потребувати додаткової обробки для змішаних типів даних.
- Вставка та видалення: Вставлення або видалення елементів, особливо в середині масиву, може бути дорогим, оскільки може знадобитися переміщення елементів.
Пов’язані публікації
- Jagged Array в Java
- Цикл for-each в Java
- Клас масивів в Java