Масиви в Java
⚡ Умно обобщение
Масиви в Java са контейнери с фиксиран размер, базирани на индекси, които съхраняват елементи от един тип данни в непрекъсната памет, осигурявайки достъп в постоянно време, вградена проверка на границите и поле за дължина, което ги прави основата за повечето колекции от стандартни библиотеки.
Какво е a Java масив?
A Java масив е структура с фиксиран размер, която съхранява елементи от един тип данни в непрекъсната памет. Всеки елемент се достига чрез индекс, базиран на нула, така че първият се намира на 0 и последният в length - 1Масивите наследяват от Object и прилагане Serializable намлява Cloneableи може да съдържа примитиви или обектни препратки.
Масивите заместват дълги серии от номерирани променливи. Да разгледаме шест независими цели числа:
x0 = 0; x1 = 1; x2 = 2; x3 = 3; x4 = 4; x5 = 5;
Същите шест стойности се намират в един масив с дължина шест:
x[0] = 0; x[1] = 1; x[2] = 2; x[3] = 3; x[4] = 4; x[5] = 5;
A контур променлива може да управлява индекса в скоби, така че три реда обработват всеки елемент вместо шест копия:
for (int count = 0; count < 5; count++) { System.out.println(x[count]); }
Видове масиви в Java
Java Масивите се предлагат в две форми:
- Едномерен масив: плосък списък с елементи.
- Многомерен масив: масив от масиви, използван за мрежи и матрици.
Променливи тип „масив“: деклариране, конструиране и инициализация
Използването на масив е процес в три стъпкидекларирай, конструирай с new, след което инициализирайте.
1) Деклариране на масива
Синтаксис:
<elementType>[] <arrayName>;
or (по-старата форма в стил C, все още валидна):
<elementType> <arrayName>[];
Пример:
int[] intArray; // canonical form: brackets on the type int intArray2[]; // legacy C-style form, discouraged in new code
2) Конструирайте масива
Синтаксис:
arrayName = new dataType[size];
Пример:
intArray = new int[10]; // defines that intArray will store 10 integer values
Декларация и строителство в комбинация:
int[] intArray = new int[10];
3) Инициализирайте масива
intArray[0] = 1; // assigns 1 to the first element (index 0) intArray[1] = 2; // assigns 2 to the second element (index 1)
Деклариране и инициализиране в една стъпка използвайки литерал на масив:
int[] intArray = {1, 2, 3, 4}; // initialises an integer array of length 4 where the first element is 1, // the second element is 2, and so on.
Първа програма за масиви в Java
Стъпка 1) Копирайте следния код в редактор:
class ArrayDemo { public static void main(String args[]) { int array[] = new int[7]; for (int count = 0; count < 7; count++) { array[count] = count + 1; } for (int count = 0; count < 7; count++) { System.out.println("array[" + count + "] = " + array[count]); } // System.out.println("Length of Array = " + array.length); // array[8] = 10; } }
Стъпка 2) Запазете, компилирайте и изпълнете кода. Наблюдавайте резултата.
Очакван резултат:
array[0] = 1 array[1] = 2 array[2] = 3 array[3] = 4 array[4] = 5 array[5] = 6 array[6] = 7
Стъпка 3) If x е препратка към масив, x.length връща броя на слотовете си. Разкоментирайте първия коментиран ред и изпълнете отново:
Length of Array = 7
Стъпка 4) За разлика от C, Java проверява границите при всеки достъп до масив. Разкоментирайте втория коментиран ред и изпълнете отново:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
Стъпка 5) JVM хвърля ArrayIndexOutOfBoundsExceptionВ C същият достъп би върнал боклук от съседна памет, вместо да доведе до неуспех.
Java Масив: Предаване по препратка
Масивите се предават на методите чрез препратка. Методът получава копие на препратката, така че промените в елементите, направени вътре в метода, са видими за извикващия метод.
Пример: масивите се предават чрез препратка.
Стъпка 1) Копирайте следния код в редактор:
class ArrayDemo { public static void passByReference(String a[]) { a[0] = "Changed"; } public static void main(String args[]) { String[] b = {"Apple", "Mango", "Orange"}; System.out.println("Before Function Call " + b[0]); ArrayDemo.passByReference(b); System.out.println("After Function Call " + b[0]); } }
Стъпка 2) Запазете, компилирайте и изпълнете кода. Наблюдавайте резултата.
Очакван резултат:
Before Function Call Apple After Function Call Changed
Многомерни масиви в Java
Многомерните масиви са масиви от масиви. Добавете още един набор от квадратни скоби за всяко измерение. За да създадете двуизмерна целочислена мрежа с четири реда и пет колони:
int[][] twoD = new int[4][5];
Трябва да оразмерите само първото (най-ляво) измерение отпред. Останалите измерения могат да бъдат разпределени отделно и всеки ред може да има своя собствена дължина, което прави Java 2-D масиви true назъбени масиви.
Пример:
public class Guru99 { public static void main(String[] args) { // Create a 2-dimensional array with 4 rows and 4 columns. int[][] twoD = new int[4][4]; // Assign three elements to it. twoD[0][0] = 1; twoD[1][1] = 2; twoD[3][2] = 3; System.out.print(twoD[0][0] + " "); } }
Очакван резултат:
1

