introduction java arrays
Ovaj vodič predstavlja koncept nizova u Javi. Također smo uveli povezane teme poput Duljina, Tipovi podataka, Kloniranje, Kopiranje, Sortiranje itd. Pod Java nizovima:
U programiranju se uvijek bavite podacima. Podaci moraju biti pohranjeni na memorijskim mjestima i da bi im se povremeno pristupilo i obrađivalo u skladu s tim, mora im se dati neko ime. To rade varijable.
Dakle, ako želite pohraniti vrijednost 10 u memoriju, deklarirat ćete varijablu tipa int i vrijednost pohraniti kao int num = 10;
Sada pretpostavimo da je vaš programski zahtjev takav da vam treba 10 varijabli tipa int.
U tom ćete slučaju morati deklarirati 10 varijabli tipa int kako slijedi:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Gore navedene izjave stavit će nepotreban teret održavanja na programera. Umjesto deklariranja toliko varijabli, što kažete na deklariranje jedne varijable i tada svih ovih 10 vrijednosti dodijelite ovoj varijabli? To ćemo učiniti kada definiramo niz i dodijelimo mu vrijednosti.
Počnimo s nizovima na Javi.
Što ćete naučiti:
- Java niz
- Zaključak
Java niz
Nizovi nisu ništa drugo do struktura podataka koja se koristi za držanje podatkovnih elemenata istog tipa u slijedu. Iz gornjeg primjera možete promijeniti definiciju deset varijabli u jednu varijablu i pohraniti svih deset vrijednosti pomoću indeksa.
Učinimo to na dolje navedeni način:
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;
Svih deset vrijednosti pohranili smo u varijablu koja se temelji na indeksu. Prvi indeks počinje od 0. Dakle, prva vrijednost je na 0thindeks i zadnja vrijednost je na 9thindeks. Ti se indeksi nazivaju i pretplatama.
U računalnoj memoriji gornji niz A bit će predstavljen kao:
Sada možemo definirati niz kao varijablu koja je zbirka elemenata istog tipa podataka i pohranjena na susjednim memorijskim mjestima. Veličina polja navedena je u trenutku deklaracije i stoga je veličina fiksna.
Nizovi o kojima ćemo raspravljati u ovom vodiču su nizovi fiksne veličine ili statički. Java također podržava dinamičke nizove zvane 'ArrayList' čija se veličina može mijenjati u hodu. O ArrayListu ćemo detaljno razgovarati kasnije.
Neke od karakteristika nizova u Javi navedene su u nastavku:
- U Javi je Array objekt instanciran iz dinamički generirane klase.
- Java matrica interno implementira sučelja koja se mogu serirati i klonirati.
- Java niz također ima klasu objekta kao nadređenu klasu.
- U Java nizove možete pohraniti ugrađene i izvedene vrijednosti tipa.
- Dužinu niza možete dobiti pomoću člana length, a ne sizeof kao u C / C ++.
- Java omogućuje pojedinačne, kao i višedimenzionalne nizove.
U ovom uputstvu čitatelju ćemo predstaviti sve koncepte niza kojima idemo
za obradu u ovoj seriji o Java Arrays.
Počnimo!!
Java Array - Izrada i inicijalizacija
Za njihovu upotrebu u programu treba stvoriti nizove. Stvaranje nizova uključuje specificiranje vrste podataka elemenata koje će niz sadržavati, kao i broja elemenata koje će niz sadržavati.
Razgovarat ćemo o stvaranju nizova na razne načine, a također i na različite metode pomoću kojih možemo inicijalizirati nizove.
Primjer jedne od metoda korištenih za stvaranje i inicijalizaciju niza dan je u nastavku.
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)); } }
Izlaz:
U ovom smo programu proglasili int niz, a zatim ga instancirali koristeći new. Tada smo inicijalizirali elemente u indeksima 0 i 1 s vrijednostima 1 i 3.
Na kraju ispisujemo sve elemente niza. Imajte na umu da elementi koje nismo inicijalizirali imaju zadane vrijednosti 0 jer je vrsta niza int.
Ispis elemenata u Java nizu
Kada se nizovi koriste u programima, oni će se obavezno prikazati. Za prikaz elemenata niza koristimo posebne metode poput for loop, forEach loop, toString metoda klase Arrays itd. Ova tema uključuje sve različite metode korištene za ispis elemenata niza.
Dolje je dan program koji koristi toString metodu klase 'Arrays' za ispis elemenata niza.
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)); } }
Izlaz:
Duljina niza u Javi
Duljina niza označava broj elemenata prisutnih u nizu. Za razliku od C / C ++, gdje za dobivanje duljine polja koristimo operator ‘sizeof’, Java niz ima svojstvo ‘length’. Kasnije ćemo istražiti više o ovom posjedu.
Dolje je dan program koji prikazuje duljinu niza.
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); } }
Izlaz:
U ovom smo programu inicijalizirali niz pomoću literala niza, a zatim pomoću svojstva length prikazali veličinu / duljinu niza.
Tipovi podataka Java niza
Možete imati nizove svih vrsta podataka. U ovoj ćemo temi istražiti nizove s različitim vrstama podataka i njihovim definicijama.
U donjem programu definirali smo nizove tipa int i string i prikazali njihov odgovarajući sadržaj .
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)); } }
Izlaz:
Dodavanje elementa u niz
Dodavanje elementa u niz je važna operacija. Nizovi u Javi su statični i fiksne duljine. Stoga morate osigurati određeni skup operacija za dodavanje novog elementa u niz. Ovdje će biti riječi o raznim metodama dodavanja elementa u niz.
Jedna od metoda dodavanja elementa u niz je upotreba ArrayList kao posredne strukture. Niz pretvaramo u ArrayList. Zatim dodajemo element u ArrayList i mijenjamo ArrayList natrag u array.
Program u nastavku prikazuje ovu provedbu.
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)); } }
Izlaz:
Ukloni / izbriši element iz niza
Uklanjanje elementa iz niza također je još jedna velika operacija. Java nam izravno ne dopušta uklanjanje elementa. Stoga za to koristimo druge mogućnosti.
Slijedi provedba jedne od metoda za uklonite element iz niza pomoću 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)); } }
Izlaz:
Ovdje prvo pretvaramo niz u ArrayList, a zatim uklanjamo element pomoću metode ArrayList remove. Nakon toga pretvaramo ArrayList natrag u niz i izlazimo promijenjeni niz.
Kopiranje niza u Javi
Razgovarat ćemo o nekim operacijama kopiranja elemenata niza iz jednog niza u drugi. Također ćemo razgovarati o plitkom i dubokom kopiranju nizova.
osnovna pitanja i odgovori na razgovorima za tehničku podršku
Jedna od takvih metoda je metoda copyOf () klase Arrays paketa 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)); } }
Izlaz:
Metoda ‘copyOf’ klase Arrays kopira niz naveden kao argument zajedno s njegovom duljinom u drugi niz.
Kloniranje niza u Javi
U Javi također možete napraviti klon niza. Java nudi metodu za to u paketu ArrayUtils. Ovdje ćemo istražiti više o kloniranju.
Primijenimo jednostavan primjer koji klonira niz u Javi.
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)); } }
Izlaz:
Dakle, kloniranje je samo kopiranje drugom metodom.
Sortiranje nizova u Javi
Razvrstavanje elemenata niza ili redoslijed po uzlaznom ili silaznom redoslijedu jedna je od važnih operacija. Većina aplikacija treba sortirati svoje podatke. Java nudi sortiranje filtara za nizove. O tome ćemo detaljno razgovarati pri sortiranju.
Slijedi jednostavan primjer s uređivanje niza u Javeu pomoću metode 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)); } }
Izlaz:
Kao što je gore prikazano, metoda sortiranja klase Arrays sortira elemente niza rastućim redoslijedom.
Obrni niz u Javi
Obrtanje niza elemenata također nije omogućeno nizovima. Baš kao i uklanjanje, moramo napraviti neki zaokret i postići rezultate. U ovoj ćemo temi vidjeti metode za preokretanje niza.
Sljedeći program prikazuje implementacija Reverziranje niza .
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)); } }
Izlaz:
Iznimka ArrayIndexOutOfBounds
Kada pokušate pristupiti elementima niza preko navedene duljine ili negativnog indeksa, sastavljač baca iznimku ‘ArrayIndexOutOfBounds’. O ovoj ćemo iznimci istražiti više u povezanoj temi.
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)); } }
Izlaz :
U gore navedenom programu imamo ArrayList s dva unosa i pokušavamo dobiti unos indeksa 2 koji ne postoji. Stoga program daje IndexOutofBounds iznimku.
Java niz nizova i razne metode
Među svim vrstama podataka koje Java podržava, String je najvažniji. Stoga niz vrsta niza također zaslužuje posebnu raspravu. Kako su podaci sadržani u nizu nizova uglavnom tekst, postoje razne metode za manipulaciju tekstom.
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 + ' '); } } }
Izlaz:
Ovo je osnovni program za niz nizova. Upravo smo proglasili niz nizova i prikazali njegov sadržaj pomoću forEach petlje.
Višedimenzionalni nizovi u Javi
Do sada smo vidjeli samo jednodimenzionalne nizove. Java također podržava višedimenzionalne nizove koji imaju elemente uglavnom poredane u retke i stupce. Nizovi u Javi postaju složeniji jer svaki element niza može sadržavati drugi niz.
Istražit ćemo višedimenzionalne nizove na Javi zajedno s njihovim specifičnim operacijama ovdje.
Primijenimo primjer dvodimenzionalnog niza.
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(); } }
Izlaz:
Java niz objekata
Osim pohrane primitivnih tipova, java nizovi mogu pohraniti i objekte. U ovoj ćemo temi istražiti neke primjere niza objekata.
U nastavku je dan jedan primjer.
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 + '
'); } }
Izlaz:
Možemo imati nizove koji sadrže elemente kao objekte. U gornjem programu imamo niz objekata klase Test. Za svaki objekt pojedinačno pozivamo funkcije člana da bi postavili i prikazali vrijednosti.
Vrati niz u Javi
Na isti način, u kojem vraćamo varijablu iz bilo koje metode, možemo vratiti i niz. Slično tome, možemo metodu proslijediti niz. Obje ove mogućnosti bit će ovdje razmotrene sa primjerima.
Obično se referenca na niz prenosi na / iz metode.
Sljedeći program prikazuje Povratak niza u Javi .
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)); } }
Izlaz:
U gornjem programu izvodimo dvije operacije tj. Zbrajanje i oduzimanje dva broja. Rezultat svake operacije pohranjuje se kao element u nizu. Tada se cijela referenca niza vraća pozivajućoj funkciji.
Klasa Java Java
Klasa Java niza je klasa iz paketa java.util koja pruža funkcionalnost za manipulaciju nizovima. Pruža mnoge funkcije poput kopiranja niza, sortiranja, pretvaranja niza u niz itd.
Java generički niz
Već smo vidjeli generičke lijekove na Javi koji su neovisni entiteti. Java nizovi mogu biti generički u kojima se mogu definirati kao neovisni o vrstama. Ali generički kôd nije dostupan kada se generira bajtni kôd, pa je stoga teško odrediti vrstu elementa koji će se niz zadržati tijekom izvođenja.
Stoga se umjesto nizova prebacujemo na popise iz okvira Java zbirki kad god su potrebni generički podaci.
Međutim, također možemo imati generički sličnu strukturu niza primjenom jedne ili više metoda. Ovdje ćemo istražiti ove metode.
Primjer jedne od metoda koja koristi objektne nizove dat je u nastavku.
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 Izlaz:

Dakle, u gore navedenom programu napisali smo generičku klasu niza s objektnim nizom kao elementom i get / set metodama za dobivanje / postavljanje array objekata. Također smo nadjačali metodu toString klase Arrays. U klasi Main izrađujemo dva objekta generičke klase polja tipa Integer i String i dodijeljujemo im odgovarajuće vrijednosti.
Nazubljeni nizovi u Javi
Nazubljeni nizovi su višedimenzionalni nizovi sa svakim članskim nizom različitih veličina. Nazubljeni niz je također primjer niza nizova.
Sljedeći program prikazuje primjer nazubljenog niza.
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 Izlaz:

U gornjem programu imamo 2D niz. Prva dimenzija niza je 4, dok je druga 2. Izlaz prikazuje sadržaj obje dimenzije nazubljenog niza.
Nizovi u Javi 8
Kako je Java 8 bilo glavno izdanje Java, proći ćemo kroz promjene koje je unijela u nizove. Na primjer, streamovi na Nizovima uvedeni su u Javi 8.
Uvezi niz u Javu
Dodatnu funkcionalnost za nizove možemo uključiti u Javu uvozom klase ‘Arrays’ paketa ‘java.util’.
Također možemo uvesti paket arrayutils za više funkcionalnosti. Sigurno ste stekli više znanja o funkcionalnosti uvoza iz naših prethodnih primjera.
Java Array API i dokumentacija
Java array API je zbirka svih funkcija koje djeluju na Java nizove. Ovdje ćemo proći kroz ovo sučelje za programiranje aplikacija (API).
Napokon smo popisali sva svojstva i metode zajedno s njihovim opisom za Java nizove. To će čitateljima pomoći u brzom upućivanju.
Često postavljana pitanja
P # 1) Jesu li nizovi primitivni tipovi podataka u Javi?
Odgovor: Ne. Nizovi nisu primitivni tipovi podataka, ali nizovi su objekti spremnika koji sadrže elemente istog tipa podataka na susjednim lokacijama.
P # 2) Jesu li nizovi referentni tipovi u Javi?
Odgovor: Da. Niz je spremnik objekata i tretira se kao reference.
P # 3) Možete li povećati veličinu niza na Javi?
Odgovor: Ne. Deklarirate nizove i instancirate ih s veličinom. Jednom specificirani, ne možete promijeniti veličinu polja.
Zaključak
U ovom uputstvu upoznali smo vas s konceptom nizova u Javi. Razgovarali smo o glavnim temama povezanim s Java nizovima.
U našim sljedećim vodičima detaljno ćemo istražiti ove teme povezane s Arrayom na Javi.
Sretno učenje !!
Preporučena literatura
- Java tipovi podataka, petlje, nizovi, prekidači i tvrdnje
- Java iznimke i rukovanje iznimkama s primjerima
- Vodič za generičke Java s primjerima
- Java sučelje i udžbenik klase sažetak sa primjerima
- Uvod u programski jezik Java - Video vodič
- Java string sa String Buffer-om i String Builder Tutorial
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Multidimenzionalni nizovi i nazubljeni nizovi u C #