java array declare
Този задълбочен урок обяснява различни начини за деклариране, създаване и инициализиране на нов масив със стойности в Java с помощта на прости примери за кодове:
В нашия предишен урок обсъдихме основите на масивите в Java заедно с различните концепции, свързани с масиви, които ще научим подробно в тази серия уроци.
Първата и основна стъпка с масивите е да ги създадете. Трябва да сте наясно какъв тип елементи и колко елементи ще съхранявате в масиви. След като декларирате масив, може да искате да ги инициализирате, като предоставите някои начални стойности и има различни методи за това.
По този начин в този урок ще се съсредоточим върху създаването и инициализирането на масиви, преди да преминем към други концепции.
Какво ще научите:
- Как да декларирам масив в Java?
- Инстанцирайте и инициализирайте Java масив
- Инициализиране и достъп до елементи на масив
- често задавани въпроси
- Заключение
- Препоръчително четене
Как да декларирам масив в Java?
В Java едномерният масив се декларира по един от следните начини:
data_type() array_name; {or} data_type array_name(); {or} data_type ()array_name;
Тук ‘data_type’ указва типа данни, които масивът ще съдържа. „Типът данни“ може да бъде примитивен тип данни или производен тип.
Например, масив мирия от тип цяло число се декларира, както следва:
int () myarray;
ИЛИ
int () myarray;
ИЛИ
int myarray ();
Това означава, че масивът myarray ще съдържа елементите от тип данни int.
Имайте предвид, че тъй като масивите в Java се разпределят динамично, ние не декларираме никакви размери или размери на масива с декларацията. Горната декларация казва на компилатора, че има масивна променлива ‘myarray’ от тип int, която ще съхранява стойностите на целочисления тип в нея.
Компилаторът не знае размера или действителните стойности, съхранявани в масив. Ще знае само, че след като инициализираме масива.
Инстанцирайте и инициализирайте Java масив
Вече декларирахме масив в предишния раздел. Но това е само справка. За да използвате декларираната по-горе масивна променлива, трябва да я създадете в инстанция и след това да предоставите стойности за нея. Масивът се създава чрез „new“.
Общият синтаксис на инстанцирането е както следва:
array_name = new data_type (size);
В горния оператор, array_name е името на масива, който се създава.
data_type=> type of elements the array is going to store size=> the number of elements that will be stored in array
Следователно, когато използвате new с масива, вие всъщност разпределяте масива с типа данни и броя на елементите.
Така че декларираният по-горе масив myarray може да бъде създаден по следния начин:
myarray = new int(10)
По този начин създаването на масив в Java включва две стъпки, както е показано по-долу:
int() myarray; //declaration myarray = new int(10); //instantiation
След като масивът е създаден, можете да го инициализирате със стойности, както следва:
myarray(0) = 1; myarray(1) = 3; ….and so on until all elements are initialized.
Изразът в квадратните скоби по-горе се нарича индекс на масива. Индексът на масива се използва за достъп до действителната стойност на елементите, т.е. горният масив myarray от 10 int елемента ще има индекси, номерирани от 0 до 9. Можете да получите достъп до елемента на масива на определена позиция, като посочите индекса като по-горе.
Обърнете внимание, че индексът на масива винаги започва от 0. Алтернативно, можете също да направите инициализацията, като използвате цикъл, който ще видим по-късно.
Можете също така да използвате литерал на масив и да инициализирате масив по време на самото деклариране, както е показано по-долу:
int() myarray = {1,3,5,7};
В горното изявление дължината на масива се определя от броя на елементите. Освен това, както виждате, няма нужда да използвате „ново“. По-важното е, че декларирането, създаването на екземпляр и инициализирането на масива се извършва в един израз.
По-долу е даден прост пример за програмиране на деклариране и инициализиране на масива.
public class Main { public static void main(String() args) { int() myarray; //declaration myarray = new int(5); //instantiation myarray(0) = 10; //initialization System.out.println('myarray(0) = ' + myarray(0)); //accessing and printing array elements System.out.println('myarray(1) = ' + myarray(1)); int () oddArray = {1,3,5,7}; //initialization with array literal System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); } }
Изход:
Тази програма демонстрира декларация за масив и неговата инстанция, както и инициализация. Имайте предвид, че тъй като сме инициализирали само oтистойност на myarray, другата стойност myarray (1), която се отпечатва, има стойност по подразбиране, т.е. 0.
Вторият масив демонстрира литералната променлива на масива. Дори и да не инициализирате масива, компилаторът на Java няма да даде грешка. Обикновено, когато масивът не е инициализиран, компилаторът присвоява стойности по подразбиране на всеки елемент от масива според типа данни на елемента.
Ще демонстрираме тези стойности по подразбиране, като използваме следната програма.
class Main { public static void main(String() args) { System.out.println('=======Default Values======'); System.out.print('String Array:'); String() array_str = new String(5); //declaration and instantiation for (String str : array_str) //assumes default values System.out.print(str + ' '); System.out.println('
'); System.out.print('Integer array:'); //array only instantiated not initialized int() array_num = new int(5); for (intnum : array_num) System.out.print(num + ' '); System.out.println('
'); System.out.print('Double array:'); //array only instantiated not initialized doublearray_double() = new double(5); for (double dnum : array_double) System.out.print(dnum + ' '); System.out.println('
'); System.out.print('Boolean array:'); //array only instantiated not initialized booleanarray_bool() = new boolean(5); for (booleanbval : array_bool) System.out.print(bval + ' '); System.out.println('
'); } }
Изход:
В горната програма току-що ги декларирахме и създадохме екземпляри. Не сме ги инициализирали до никакви стойности. По този начин, когато показваме съдържанието на тези масиви, в зависимост от типа данни на масива, елементите ще имат различни стойности по подразбиране.
Както се вижда по-горе, масивът на низовете по подразбиране е „нула“, целочислените стойности са 0, а двойните стойности по подразбиране са 0,0. Булевите стойности имат своите стойности по подразбиране, зададени на false.
Инициализиране и достъп до елементи на масив
# 1) Използване на Loop
Програмата, написана по-горе, използва литерал на масив за инициализиране, а останалите елементи на масива се инициализират отделно. Можете също да използвате цикъл for, за да инициализирате елементите на масива.
безплатно почистване на боклуци за Windows 10
Преобразувахме горния масив с помощта на литерала на масива, за да го инициализираме с помощта на цикъл for в програмата по-долу.
public class Main { public static void main(String() args) { int() oddArray; //declaration oddArray = new int(5); //instantiation for(int i=0;i<5;i++){ oddArray(i) = i+1; //initialization using for loop } System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); System.out.println('oddArray(4) = ' + oddArray(4)); } }
Изход:
Тук, както можете да видите, ние инициализирахме масива с помощта на цикъл for. Всеки елемент ‘i’ от масива се инициализира със стойност = i + 1. Освен че използвате горния метод за инициализиране на масиви, можете да използвате и някои от методите на класа „Масиви“ на пакета „java.util“, за да предоставите начални стойности за масива.
Ще обсъдим някои от тези методи по-долу.
# 2) Използване на Arrays.fill ()
Методът fill () на класа ‘Arrays’ може да се използва за инициализиране на масива. Когато инициализирате масив, използвайки този метод, масивът се запълва със същите стойности при всички индекси.
По-долу е даден пример за програмиране.
import java.util.*; public class Main { public static void main(String() args) { int() oddArray; oddArray = new int(5); //fill the array with value 30 Arrays.fill(oddArray, 30); System.out.println('Array Elements initialised with Arrays.fill:'); for(int i=0;i<5;i++) System.out.println('oddArray(' + i +') = ' + oddArray(i)); } }
Изход:
В горната програма сме предоставили 30 като стойност, която трябва да се попълни за масива. Резултатът показва, че всички елементи в масива имат стойност 30.
# 3) Използване на Arrays.copyOf ()
Използвайки метода ‘copyOf ()’, ние използваме масив източник и след това копираме стойностите му в нов масив. Можете да посочите колко стойности да бъдат копирани и тогава останалите елементи на масива ще имат стойности по подразбиране.
Проверете следната програма.
import java.util.*; public class Main { public static void main(String() args) { int evenArray() = { 2,4,6,8,10 }; //copy contents of evenArray to copyof_Array int() copyof_Array = Arrays.copyOf(evenArray,5); System.out.println('Array Elements initialised with Arrays.copyOf:'); //print the array elements for(int i=0;i<5;i++) System.out.println('copyof_Array(' + i +') = ' + copyof_Array(i)); } }
Изход:
В тази програма използваме масив източник, наречен ‘evenArray’. Използвайки метода copyOf, ние копирахме всички елементи на evenArray в новия масив. В изхода показваме съдържанието на новия масив, което е същото като evenArray.
Освен горните два метода току-що обсъдихме, че има повече методи като метода setAll () на клас Arrays и метод clone () на ArrayUtils, които могат да се използват за инициализиране на масиви. Ще разгледаме тези методи по-късно в тази поредица от уроци в съответните теми.
често задавани въпроси
В # 1) Можем ли да декларираме масив без размер?
Отговор: Не. Не е възможно да се декларира масив, без да се посочи размерът. Ако изобщо искате да направите това, тогава можете да използвате ArrayList, който е динамичен по своята същност.
В # 2) Фиксиран ли е размерът на масива в Java?
Отговор: Да. Масивите са статични в Java и вие декларирате масив с определен размер. След като този размер е посочен, не можете да го промените отново.
В # 3) Винаги ли е необходимо да се използва ново при инициализиране на масиви?
Отговор: Не. Масивите могат да бъдат инициализирани с помощта на нови или чрез присвояване на стойности, разделени със запетая, затворени в фигурни скоби.
Така че, когато инициализираме масив, използвайки Array literal, както е показано по-долу. Не е необходимо да използвате нови.
int() myarray = {1,2,3,4,5};
Броят на предоставените елементи ще определи размера на масива.
В # 4) Java Array сериализира ли се?
Отговор: Да. Вътрешно масивът в Java реализира сериализуем интерфейс.
В # 5) Примитивен тип данни за масив ли е?
Отговор: Не. Всъщност масивът изобщо не е тип данни. Масивът е обект на контейнер, който съдържа елементите на специфични типове данни в съседни места на паметта.
Заключение
Това обобщава създаването и инициализирането на масиви в Java. След като масивите са създадени и инициализирани до някои стойности, трябва да ги отпечатаме. За отпечатване на елементите на масива трябва да преминем през целия масив и да отпечатаме елементи.
Ще разгледаме някои от методите за отпечатване на масивни елементи в следващия урок.
Препоръчително четене
- Урок за интерфейс на Java и абстрактен клас с примери
- Въведение в езика за програмиране на Java - видео урок
- Java нишки с методи и жизнен цикъл
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Урок за дължина на масив Java с примери за кодове
- C # Array: Как да декларирам, инициализирам и достъп до масив в C #?
- Java Hello World - Създайте първата си програма в Java днес
- Въведение в Java масивите и свързаните с тях концепции