introduction java arrays
Този урок представя концепцията за масиви в Java. Представихме и свързани теми като дължина, типове данни, клониране, копиране, сортиране и др. Под Java масиви:
безплатна защита от зловреден софтуер в реално време 2017
При програмирането винаги се занимавате с данни. Данните трябва да се съхраняват на места в паметта и за да има достъп до тях от време на време и да се обработват съответно, трябва да им се даде някакво име. Това се прави от променливи.
По този начин, ако искате да съхраните стойност 10 в паметта, ще декларирате променлива от тип int и ще съхраните стойността като int num = 10;
Сега да предположим, че изискването ви за програма е такова, че ви трябват 10 променливи от тип int.
В този случай ще трябва да декларирате 10 променливи от тип int, както следва:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Горните декларации ще поставят ненужната тежест на поддръжката върху програмиста. Вместо да декларирате толкова много променливи, какво ще кажете за деклариране на една променлива и след това всички тези 10 стойности да бъдат присвоени на тази променлива? Това ще направим, когато дефинираме масив и му присвоим стойности.
Нека започнем с масиви в Java.
Какво ще научите:
- Java Array
- Заключение
Java Array
Масивите не са нищо друго освен структура от данни, която се използва за съхраняване на елементите от данни от същия тип по последователен начин. От горния пример можете да промените дефиницията на десет променливи в една променлива и да съхранявате всичките десет стойности с помощта на индекси.
Нека го направим по следния начин:
A (0) = 1;
A (1) = 2;
A (2) = 3;
A (3) = 4;
A (4) = 5;
A (5) = 6;
A (6) = 7;
A (7) = 8;
A (8) = 9;
A (9) = 10;
Съхранихме всичките десет стойности в базирана на индекса променлива. Първият индекс започва от 0. Така че първата стойност е на 0тииндекс и последната стойност е 9тииндекс. Тези индекси се наричат още индекси.
В паметта на компютъра горният масив А ще бъде представен като:
Сега можем да дефинираме масив като променлива, която е колекция от елементи от същия тип данни и се съхранява на съседни места в паметта. Размерът на масива е посочен по време на декларирането и следователно размерът е фиксиран.
Масивите, които ще обсъдим в този урок, са масиви с фиксиран размер или статика. Java също поддържа динамични масиви, наречени „ArrayList“, чийто размер може да се променя в движение. Ще обсъдим ArrayList подробно по-късно.
Някои от характеристиките на масивите в Java са изброени по-долу:
- В Java масивът е обект, създаден от динамично генериран клас.
- Вътрешно Java масивът изпълнява сериализуеми и клонируеми интерфейси.
- Java масивът също има клас на обект като родителски клас.
- Можете да съхранявате вградени и производни стойности на типа в масиви Java.
- Можете да получите дължината на масив, като използвате член length, а не sizeof като в C / C ++.
- Java позволява единични, както и многомерни масиви.
В този урок ще представим всички концепции за масива на читателя, към който отиваме
да покрие в тази поредица за Java Arrays.
Да започваме!!
Java Array - Създаване и инициализация
Трябва да се създадат масиви, за да се използват в програмата. Създаването на масиви включва определяне на типа данни на елементите, които масивът ще съхранява, както и броя на елементите, които масивът ще съдържа.
Ще обсъдим създаването на масиви по различни начини, а също и по различни методи, използвайки които можем да инициализираме масиви.
Пример за един от методите, използвани за създаване и инициализиране на масив е даден по-долу.
public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('myArray(0):' + myArray(0)); System.out.println('myArray(1):' + myArray(1)); System.out.println('myArray(2):' + myArray(2)); System.out.println('myArray(3):' + myArray(3)); System.out.println('myArray(4):' + myArray(4)); } }
Изход:
В тази програма декларирахме масив int и след това го създадохме с помощта на new. Тогава имаме инициализирани елементи при индекси 0 и 1 със стойности 1 и 3 съответно.
Накрая отпечатваме всички елементи на масива. Имайте предвид, че елементите, които не сме инициализирали, имат стойности по подразбиране като 0, тъй като типът на масива е int.
Печат на елементи в Java Array
Когато в програмите се използват масиви, те задължително се показват. За да покажем елементи на масив, ние използваме специални методи като for loop, forEach loop, toString метод на клас Arrays и др. Тази тема включва всички различни методи, използвани за отпечатване на елементи на масив.
По-долу е дадена програма, която използва метода toString от клас ‘Arrays’ за отпечатване на елементи от масив.
import java.util.*; public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('Array Elements : ' + Arrays.toString(myArray)); } }
Изход:
Дължина на масива в Java
Дължината на масива показва броя на елементите, присъстващи в масива. За разлика от C / C ++, където използваме оператора ‘sizeof’, за да получим дължината на масива, Java масивът има свойството ‘length’. Ще проучим повече за този имот по-късно.
По-долу е дадена програмата, която показва дължината на масив.
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; System.out.println('Size of the given array : ' + myArray.length); } }
Изход:
В тази програма сме инициализирали масива с помощта на литерала на масива и след това с помощта на свойството length показваме размера / дължината на масива.
Типове данни за масив Java
Можете да имате масиви от всички типове данни. В тази тема ще изследваме масиви с различни типове данни и техните дефиниции.
В програмата по-долу дефинирахме масиви от тип int и string и показахме съответното им съдържание .
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; String() strArray = {'one','two','three','four','five'}; System.out.println('Elements of int array : ' + Arrays.toString(myArray)); System.out.println('Elements of String array : ' + Arrays.toString(strArray)); } }
Изход:
Добавяне на елемент към масив
Добавянето на елемент към масива е важна операция. Масивите в Java са статични и с фиксирана дължина. Следователно трябва да предоставите определен набор от операции, за да добавите нов елемент към масива. Тук ще бъдат разгледани различните методи за добавяне на елемент към масива.
Един от методите за добавяне на елемент към масива е чрез използване на ArrayList като междинна структура. Преобразуваме масива в ArrayList. След това добавяме елемента към ArrayList и променяме ArrayList обратно към масив.
Програмата по-долу показва това изпълнение.
import java.util.*; class Main { public static void main(String() args) { int n = 10; int i; Integer intArray() = { 1, 2, 3, 4, 5 }; System.out.println('Original Array:
' + Arrays.toString(intArray)); int num = 10; Listintlist = new ArrayList(Arrays.asList(intArray)); intlist.add(num); intArray = intlist.toArray(intArray); System.out.println('
Array after adding ' + num + '
' + Arrays.toString(intArray)); } }
Изход:
къде е ключът за мрежова защита?
Премахване / изтриване на елемент от масив
Премахването на елемент от масив също е друга голяма операция. Java не ни позволява директно да премахнем елемент. Затова използваме други възможности за това.
По-долу е дадено изпълнението на един от методите за премахнете елемента от масив с помощта на ArrayList .
import java.util.*; importjava.util.stream.*; class Main { public static void main(String() args) { int() tensArray = { 10,20,30,40,50}; System.out.println('Input Array: '+ Arrays.toString(tensArray)); int index = 1; System.out.println('Index to be removed: ' + index); if (tensArray == null || index = tensArray.length) { System.out.println('No element to delete'); } ListtensList = IntStream.of(tensArray).boxed().collect(Collectors.toList()); tensList.remove(index); tensArray = tensList.stream().mapToInt(Integer::intValue).toArray(); System.out.println('Array after deleting element at '+ index + ':
'+ Arrays.toString(tensArray)); } }
Изход:
Тук първо преобразуваме масива в ArrayList и след това премахваме елемента с помощта на метода ArrayList remove. След това преобразуваме ArrayList обратно в масива и извеждаме променения масив.
Копиране на масив в Java
Ще обсъдим някои от операциите за копиране на елементи на масив от един масив в друг. Ще обсъдим също плиткото и дълбоко копиране на масиви.
Един такъв метод е метод copyOf () от класа Arrays на пакета java.util .
import java.util.*; public class Main { public static void main(String() args) { int() intArray = {10,15,20,25,30,35,40}; int array_len = intArray.length; System.out.println('Original Array:' + Arrays.toString(intArray)); int() copy_intArray = Arrays.copyOf(intArray, array_len); System.out.println('Copied Array:' + Arrays.toString(copy_intArray)); } }
Изход:
Методът ‘copyOf’ от клас Arrays копира масива, посочен като аргумент, заедно с дължината му в друг масив.
Клониране на масив в Java
Можете също да направите клон на масив в Java. Java предоставя метод за това в пакета ArrayUtils. Ще проучим повече за клонирането тук.
Нека реализираме прост пример, който клонира масив в Java.
import java.util.*; class Main { public static void main(String args()) { int num_Array() = {5,10,15,20,25,30}; int clone_Array() = num_Array.clone(); System.out.println('Original num_Array:' + Arrays.toString(num_Array)); System.out.println('Cloned num_Array:'+ Arrays.toString(clone_Array)); } }
Изход:
По този начин клонирането е просто копиране с помощта на различен метод.
Сортиране на масиви в Java
Сортирането на елементи на масива или подреждането им във възходящ или низходящ ред е една от важните операции. Повечето приложения се нуждаят от техните данни, за да бъдат сортирани. Java осигурява сортиране на филтър за масиви. Ще обсъдим това подробно при сортиране.
Следва прост пример за с ортиране на масив в Jave с помощта на метода Arrays.sort () .
import java.util.Arrays; public class Main { public static void main(String() args) { int() num_Array = {115,32,56,78,94,108,100,63}; System.out.println('Original Array: ' + Arrays.toString(num_Array)); Arrays.sort(num_Array); System.out.println('Sorted Array: ' + Arrays.toString(num_Array)); } }
Изход:
Както е показано по-горе, методът на сортиране на клас Arrays сортира елементите на масива във възходящ ред.
Обърнете масив в Java
Обръщането на поредицата от елементи също не се осигурява от масиви. Точно като премахването, трябва да направим известен обрат и да постигнем резултатите. В тази тема ще видим методите за обръщане на масив.
Следващата програма показва изпълнение на Reversing an array .
import java.util.*; public class Main { public static void main(String() args) { Integer () even_Arrayr = {2,4,6,8,10}; System.out.println('Original Array:' + Arrays.asList(even_Arrayr)); Collections.reverse(Arrays.asList(even_Arrayr)); System.out.println('Reversed Array:' + Arrays.asList(even_Arrayr)); } }
Изход:
Изключение ArrayIndexOutOfBounds
Когато се опитате да получите достъп до елементи на масив над определената дължина или отрицателен индекс, компилаторът изхвърля изключението „ArrayIndexOutOfBounds“. Ще разгледаме повече за това изключение в свързаната ни тема.
import java.util.ArrayList; public class Main { public static void main(String() args) { ArrayListmyList = new ArrayList(); myList.add('one'); myList.add('two'); System.out.println(myList.get(2)); } }
Изход :
В горната програма имаме ArrayList с два записа и се опитваме да получим записа с индекс 2, който не съществува. Следователно програмата дава изключение IndexOutofBounds.
Java String Array & Различни методи
Сред всички типове данни, поддържани от Java, String е най-важният. Следователно масивът тип String също заслужава специална дискусия. Тъй като данните, съдържащи се в масив от низове, са предимно текст, има различни методи за манипулиране на текста.
import java.util.ArrayList; public class Main { public static void main(String() args) { String() rgb = {'Red', 'Green', 'Blue'}; System.out.println('The string array elements:'); for (String item: rgb) { System.out.print(item + ' '); } } }
Изход:
Това е основна програма за масивен низ. Току-що декларирахме масив от низове и показахме съдържанието му с помощта на цикъла forEach.
Многомерни масиви в Java
Досега сме виждали само едномерни масиви. Java също поддържа многомерни масиви с елементи, подредени предимно в редове и колони. Масивите в Java стават по-сложни, тъй като всеки елемент от масива може да съдържа друг масив.
Ще изследваме многомерни масиви в Java заедно с техните специфични операции тук.
Нека реализираме пример за двумерен масив.
class Main { public static void main(String args()) { // declaring and initializing 2D array int array_2d()() = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println('The two-dimensional array is as follows:'); for (int i=0; i<3 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(array_2d(i)(j) + ' '); System.out.println(); } }
Изход:
Java масив от обекти
Освен съхранението на примитивни типове, java масивите могат да съхраняват и обекти. В тази тема ще разгледаме някои примери за масив от обекти.
Един пример е даден по-долу.
class Main{ public static void main(String args()){ Test testobj() = new Test(2) ; testobj(0) = new Test(); testobj(1) = new Test(); testobj(0).setData(1,3); testobj(1).setData(2,4); System.out.println('For Array Element 0 (testobj(0)):'); testobj(0).displayData(); System.out.println('For Array Element 1 (testobj(1)):'); testobj(1).displayData(); } } class Test{ int val1; int val2; public void setData(int c,int d){ val1=c; val2=d; } public void displayData(){ System.out.print('val1 ='+val1 + '; val2 ='+val2 + '
'); } }
Изход:
Можем да имаме масиви, съдържащи елементи като обекти. В горната програма имаме масив от обекти от клас Test. Ние индивидуално извикваме членски функции за всеки обект, за да зададем и покажем стойностите.
Връщане на масив в Java
По същия начин, при който връщаме променлива от всеки метод, можем да върнем и масив. По същия начин можем да предадем масив на метод. И двете тези възможности ще бъдат обсъдени с примери тук.
Обикновено препратка към масива се предава към / от метод.
Следващата програма демонстрира връщането на масив в Java .
class Main { static int() add_sub(int val1, int val2) { int() result = new int(2); result(0) = val1 + val2; result(1) = val1 - val2; return result; } public static void main(String() args) { int() result = add_sub(10, 5); System.out.println('val1 + val2 = ' + result(0)); System.out.println('val1 - val2 = ' + result(1)); } }
Изход:
В горната програма изпълняваме две операции, т.е.събиране и изваждане на две числа. Резултатът от всяка операция се съхранява като елемент в масива. Тогава цялата референция към масива се връща към извикващата функция.
Клас на Java масив
Класът на масива Java е клас от пакета java.util, който предоставя функционалността за манипулиране на масиви. Той осигурява много функции като копиране на масив, сортиране, преобразуване на масив в низ и т.н.
Java Generic Array
Вече видяхме генерици в Java, които са независими от типа обекти. Java масивите могат да бъдат общи, в които могат да бъдат определени като независими от типовете. Но общият код не е достъпен, когато се генерира байт код и по този начин е трудно да се изведе вида на елемента, масивът ще се държи по време на изпълнение.
По този начин вместо масиви, ние превключваме към списъци от рамката на Java колекции, когато се изискват генерични продукти.
Можем обаче да имаме и генерична структура на масив, като използваме един или повече методи. Тук ще изследваме тези методи.
Пример за един от методите, използващи обектни масиви, е даден по-долу.
import java.util.Arrays; class Main { public static void main(String() args) { final int length = 5; //integer array object from Generic_Array class Generic_ArrayintArray = new Generic_Array(length); for (int i = 0; i Изход:

Така че в горната програма сме написали общ клас масив с обект масив като елемент и get / set методи за получаване / задаване на масив обекти. Също така сме заменили метода toString на класа Arrays. В основния клас създаваме два обекта от общ клас масив от тип Integer и String и им присвояваме подходящи стойности.
Назъбени масиви в Java
Назъбените масиви са многомерни масиви с всеки член масив с различни размери. Назъбеният масив също е пример за масив от масиви.
Следващата програма показва пример за назъбения масив.
class Main { public static void main(String() args) { int jagged_array()() = new int(2)(); jagged_array(0) = new int(4); jagged_array(1) = new int(2); for (int i=0; i Изход:

Имаме 2D масив в горната програма. Първото измерение на масива е 4, докато второто е 2. Резултатът показва съдържанието на двете измерения на назъбения масив.
Масиви в Java 8
Тъй като Java 8 беше основно издание на Java, ще преминем през промените, които той доведе до масивите. Например, потоци на масиви бяха въведени в Java 8.
Импортиране на масив в Java
Можем да включим допълнителна функционалност за масиви в Java чрез импортиране на класа ‘Arrays’ на пакета ‘java.util’.
Също така можем да импортираме пакета arrayutils за повече функционалности. Трябва да сте придобили повече знания за функционалността за импортиране от предишните ни примери.
API на Java Array и документация
Java array API е колекция от всички функции, които действат върху Java масивите. Ще преминем през този интерфейс за програмиране на приложения (API) тук.
Най-накрая изброихме всички свойства и методи, заедно с описанието им за масиви Java. Това ще помогне на читателите с бърза справка.
често задавани въпроси
В # 1) Примитивни ли са типовете данни на масиви в Java?
Отговор: Не. Масивите не са примитивни типове данни, но масивите са контейнерни обекти, които съдържат елементи от същия тип данни в съседни местоположения.
В # 2) Референтните типове масиви в Java ли са?
Отговор: Да. Масивът е контейнер с обекти и се третира като препратки.
как да добавите стойност към масив
В # 3) Можете ли да увеличите размера на масив в Java?
Отговор: Не. Декларирате масиви и го създавате с инстанция с размер. Веднъж посочени, не можете да промените размера на масива.
Заключение
В този урок ви запознахме с концепцията за масиви в Java. Обсъдихме основните теми, свързани с Java масивите.
В следващите ни уроци ще разгледаме подробно тези теми, свързани с Array в Java.
Честито обучение !!
Препоръчително четене
- Java DataTypes, Loops, Arrays, Switch и Assertions
- Изключения на Java и обработка на изключения с примери
- Урок за Java Generics с примери
- Урок за интерфейс на Java и абстрактен клас с примери
- Въведение в езика за програмиране на Java - видео урок
- Java String с урок за String Buffer и String Builder
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Многомерни масиви и назъбени масиви в C #