introduction java arrays
Ta vadnica predstavlja koncept nizov v Javi. Pod Java-nizi smo predstavili tudi sorodne teme, kot so dolžina, tipi podatkov, kloniranje, kopiranje, razvrščanje itd.:
Pri programiranju se vedno ukvarjate s podatki. Podatke je treba hraniti na pomnilniških lokacijah, da jih lahko občasno obiščete in ustrezno obdelate, jim damo neko ime. To naredijo spremenljivke.
Če želite torej vrednost 10 shraniti v pomnilnik, boste deklarirali spremenljivko tipa int in vrednost shranili kot int num = 10;
Zdaj pa predpostavimo, da je vaša programska zahteva takšna, da potrebujete 10 spremenljivk tipa int.
V tem primeru boste morali prijaviti 10 spremenljivk tipa int, kot sledi:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
Zgornje izjave bodo programerju postavile nepotrebno breme vzdrževanja. Namesto da bi razglasili toliko spremenljivk, kako bi bilo, če bi razglasili eno spremenljivko in potem tej spremenljivki dodelili vseh teh 10 vrednosti? To bomo storili, ko bomo definirali matriko in ji dodelili vrednosti.
Začnimo z nizi v Javi.
Kaj se boste naučili:
- Java Array
- Zaključek
Java Array
Polja niso nič drugega kot podatkovna struktura, ki se uporablja za zaporedno shranjevanje istovrstnih podatkovnih elementov. Iz zgornjega primera lahko spremenite definicijo desetih spremenljivk v eno spremenljivko in shranite vseh deset vrednosti z uporabo indeksov.
Naredimo to na spodaj 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;
Vseh deset vrednosti smo shranili v spremenljivko, ki temelji na indeksu. Prvi indeks se začne od 0. Torej je prva vrednost pri 0thindeks in zadnja vrednost je 9thindeks. Ti indeksi se imenujejo tudi naročniki.
V računalniškem pomnilniku bo zgornji niz A predstavljen kot:
Zdaj lahko polje določimo kot spremenljivko, ki je zbirka elementov istega podatkovnega tipa in je shranjena na sosednjih pomnilniških lokacijah. Velikost matrike je določena v času deklaracije in je zato velikost fiksna.
Nizi, o katerih bomo razpravljali v tej vadnici, so matrike s fiksno velikostjo ali statiko. Java podpira tudi dinamična polja, imenovana »ArrayList«, katerih velikost je mogoče sproti spreminjati. O ArrayList bomo podrobneje razpravljali pozneje.
Nekatere značilnosti nizov v Javi so navedene spodaj:
- V Javi je matrika objekt, ustvarjen iz dinamično generiranega razreda.
- Java matrika interno implementira vmesnike, ki jih je mogoče serirati in klonirati.
- Java matrika ima za nadrejeni razred tudi objektni razred.
- V polja Java lahko shranite vgrajene in izpeljane vrednosti tipa.
- Dolžino polja lahko dobite z uporabo člana length in ne sizeof kot v C / C ++.
- Java omogoča tako enodimenzionalne kot tudi večdimenzionalne nize.
V tej vadnici bomo bralcu predstavili vse koncepte nizov, v katere gremo
zajeti v tej seriji o Java Arrays.
Začnimo!!
Java Array - Ustvarjanje in inicializacija
Za njihovo uporabo v programu je treba ustvariti nize. Ustvarjanje nizov vključuje določanje podatkovnega tipa elementov, ki jih bo matrika vsebovala, pa tudi število elementov, ki jih bo matrika vsebovala.
Razpravljali bomo o ustvarjanju nizov na različne načine in tudi na različne načine, s katerimi lahko inicializiramo polja.
Primer ene od metod, uporabljenih za ustvarjanje in inicializacijo matrike, je podan spodaj.
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)); } }
Izhod:
V tem programu smo razglasili matriko int in jo nato ustvarili z uporabo novega. Nato smo inicializirali elemente pri indeksih 0 in 1 z vrednostmi 1 oziroma 3.
Na koncu natisnemo vse elemente polja. Upoštevajte, da imajo elementi, ki jih nismo inicializirali, privzete vrednosti 0, saj je vrsta polja int.
Natisni elemente v Java Array
Ko se v programih uporabljajo nizi, bodo ti obvezno prikazani. Za prikaz elementov matrike uporabljamo posebne metode, kot so zanka for, vsaka zanka, metoda toString razreda Arrays itd. Ta tema vključuje vse različne metode, ki se uporabljajo za tiskanje elementov matrike.
Spodaj je program, ki za tiskanje elementov matrike uporablja metodo toString razreda ‘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)); } }
Izhod:
Dolžina polja v Javi
Dolžina matrike označuje število elementov, ki so v matriki. Za razliko od C / C ++, kjer za dolžino polja uporabljamo operator sizeof, ima polje Java lastnost 'length'. Več o tej nepremičnini bomo raziskali kasneje.
Spodaj je program, ki prikazuje dolžino polja.
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); } }
Izhod:
V tem programu smo matriko inicializirali z dobesedno matriko in nato z lastnostjo dolžine prikazali velikost / dolžino polja.
Vrste podatkovnih nizov Java
Lahko imate nize vseh podatkovnih vrst. V tej temi bomo raziskali nize z različnimi vrstami podatkov in njihovimi definicijami.
V spodnjem programu smo definirali matrike int in string in prikazali njihovo vsebino .
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)); } }
Izhod:
Dodajanje elementa v polje
Dodajanje elementa v matriko je pomembna operacija. Nizi v Javi so statični in fiksne dolžine. Zato morate zagotoviti določen nabor operacij za dodajanje novega elementa v matriko. Tu bodo obravnavane različne metode dodajanja elementa v matriko.
Eden od načinov dodajanja elementa v matriko je uporaba ArrayList kot vmesne strukture. Matriko pretvorimo v ArrayList. Nato element dodamo v ArrayList in spremenimo ArrayList nazaj v matriko.
Spodnji program prikazuje to izvedbo.
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)); } }
Izhod:
Odstrani / izbriši element iz polja
Odstranjevanje elementa iz polja je tudi druga pomembna operacija. Java nam neposredno ne dovoljuje odstranitve elementa. Za to uporabljamo druge možnosti.
Spodaj je prikazano izvajanje ene od metod za odstranite element iz polja z uporabo seznama 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)); } }
Izhod:
Tu najprej matriko pretvorimo v ArrayList in nato z metodo ArrayList odstranimo element. Po tem pretvorimo ArrayList nazaj v matriko in izpišemo spremenjeno matriko.
Kopiranje polja v Javi
Razpravljali bomo o nekaterih operacijah kopiranja elementov matrike iz ene matrike v drugo. Obravnavali bomo tudi plitvo in globoko kopiranje nizov.
Ena takih metod je metoda copyOf () razreda 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)); } }
Izhod:
Metoda ‘copyOf’ razreda Arrays kopira matriko, določeno kot argument, skupaj z njeno dolžino, v drugo matriko.
Kloniranje polja v Javi
V Javi lahko naredite tudi klon polja. Java ponuja metodo za to v paketu ArrayUtils. Tukaj bomo raziskali več o kloniranju.
Izvedimo preprost primer, ki klonira matriko v 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)); } }
Izhod:
Tako je kloniranje le kopiranje z drugačno metodo.
Razvrščanje nizov v Javi
Razvrščanje elementov polja ali razvrščanje po naraščajočem ali padajočem vrstnem redu je ena pomembnih operacij. Večina aplikacij potrebuje razvrščanje njihovih podatkov. Java ponuja razvrščanje filtrov za polja. O tem bomo podrobno razpravljali pri razvrščanju.
Sledi preprost primer s razvrščanje polja v Jave z uporabo 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)); } }
Izhod:
Kot je prikazano zgoraj, metoda razvrščanja razreda Arrays razvrsti elemente polja v naraščajočem vrstnem redu.
Spremeni matriko v Javi
Spreminjanje zaporedja elementov prav tako ne omogočajo nizov. Tako kot odstranitev moramo narediti nekaj preobrata in doseči rezultate. V tej temi bomo videli metode za obračanje matrike.
Naslednji program prikazuje izvedba Reversing 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)); } }
Izhod:
Izjema ArrayIndexOutOfBounds
Ko poskušate dostopati do elementov matrike, ki presegajo določeno dolžino ali negativni indeks, prevajalnik vrže izjemo 'ArrayIndexOutOfBounds'. Več o tej izjemi bomo raziskali v sorodni 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)); } }
Izhod :
V zgornjem programu imamo ArrayList z dvema vnosoma in poskušamo dobiti vnos z indeksom 2, ki ne obstaja. Program torej daje izjemo IndexOutofBounds.
Niz nizov Java in različne metode
Med vsemi vrstami podatkov, ki jih podpira Java, je String najpomembnejši. Zato tudi niz nizov tipa zasluži posebno razpravo. Ker so podatki, ki jih vsebuje niz nizov, večinoma besedilo, obstajajo različni načini za obdelavo besedila.
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 + ' '); } } }
Izhod:
To je osnovni program za niz nizov. Pravkar smo razglasili niz nizov in prikazali njegovo vsebino s pomočjo zanke forEach.
Večdimenzionalni nizi v Javi
Do zdaj smo videli le enodimenzionalne nize. Java podpira tudi večdimenzionalne nize z elementi, ki so večinoma razporejeni v vrstice in stolpce. Polja v Javi so bolj zapletena, saj lahko vsak element polja vsebuje drugo matriko.
V Javi bomo raziskali večdimenzionalne nize skupaj z njihovimi specifičnimi operacijami tukaj.
Izvedimo primer dvodimenzionalnega polja.
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(); } }
Izhod:
Java Array of Objects
Poleg shranjevanja primitivnih vrst lahko nizi jave shranjujejo tudi predmete. V tej temi bomo raziskali nekaj primerov vrste predmetov.
Spodaj je naveden en primer.
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 + '
'); } }
Izhod:
Lahko imamo nize, ki vsebujejo elemente kot predmete. V zgornjem programu imamo vrsto predmetov razreda Test. Posamezno pokličemo funkcije članov za vsak objekt, da nastavimo in prikažemo vrednosti.
najboljša programska oprema za popravilo pc za Windows 10
Vrni polje v Javi
Na enak način, pri katerem iz katere koli metode vrnemo spremenljivko, lahko vrnemo tudi matriko. Podobno lahko matriko posredujemo metodi. O obeh možnostih bomo govorili s primeri tukaj.
Običajno se sklic na matriko posreduje v / iz metode.
Naslednji program prikazuje Vrnitev polja v 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)); } }
Izhod:
V zgornjem programu izvedemo dve operaciji, torej seštevanje in odštevanje dveh števil. Rezultat vsake operacije je shranjen kot element v matriki. Nato se celotna referenca na matriko vrne klicni funkciji.
Razred Java Array
Razred polja Java je razred iz paketa java.util, ki zagotavlja funkcionalnost za upravljanje nizov. Omogoča številne funkcije, kot so kopiranje matrike, razvrščanje, pretvorba matrike v niz itd.
Java Generic Array
V Javi smo že videli generike, ki so neodvisni od tipa entitete. Java-nizi so lahko splošni, v katerih jih je mogoče opredeliti kot neodvisne od vrst. Toda generična koda ni na voljo, ko se generira bajtna koda, zato je težko določiti vrsto elementa, ki ga bo matrika zadržala med izvajanjem.
Tako namesto nizov preklopimo na sezname iz okvira zbirk Java, kadar koli so potrebni generiki.
Lahko pa imamo tudi generično podobno strukturo matrike z uporabo ene ali več metod. Tu bomo raziskali te metode.
Primer ene od metod z uporabo objektnih nizov je podan spodaj.
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 Izhod:

Torej, v zgornjem programu smo napisali generični razred matrike z objektno matriko kot elementom in metode get / set za pridobivanje / nastavitev elementov matrike. Prav tako smo preglasili metodo toString za razred Arrays. V razredu Main ustvarimo dva predmeta generičnega razreda matrike tipa Integer in String in jim dodelimo ustrezne vrednosti.
Nazobčana polja v Javi
Nazobčani nizi so večdimenzionalni nizi z vsakim članskim nizom različnih velikosti. Nazobčana matrika je tudi primer polja nizov.
Naslednji program prikazuje primer niza Jagged.
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 Izhod:

V zgornjem programu imamo 2D matriko. Prva dimenzija matrike je 4, druga pa 2. Izhod prikazuje vsebino obeh dimenzij nazobčane matrike.
Nizi v Javi 8
Ker je bila Java 8 glavna izdaja Java, bomo preučili spremembe, ki jih je povzročila v nizih. Na primer, tokovi na nizih so bili uvedeni v Javi 8.
Uvozi polje v Javo
V Java lahko vključimo dodatne funkcije za nize z uvozom razreda ‘Arrays’ paketa ‘java.util’.
Za več funkcionalnosti lahko uvozimo tudi paket arrayutils. Gotovo ste dobili več znanja o funkciji uvoza iz naših prejšnjih primerov.
API in dokumentacija Java Array
Java array API je zbirka vseh funkcij, ki delujejo na Java nize. Tu bomo pregledali ta vmesnik za programiranje aplikacij (API).
Končno smo našteli vse lastnosti in metode ter njihov opis za Java-nize. To bo bralcem pomagalo s hitrimi navodili.
Pogosto zastavljena vprašanja
V # 1) Ali so nizi primitivnih podatkovnih vrst v Javi?
Odgovor: Ne. Nizi niso primitivni podatkovni tipi, vendar so matrični objekti, ki imajo elemente istega podatkovnega tipa na sosednjih lokacijah.
V # 2) Ali so nizi referenčnih vrst v Javi?
Odgovor: Da. Matrika je vsebnik predmetov in se obravnava kot referenca.
V # 3) Ali lahko v Javi povečate velikost polja?
Odgovor: Ne. Deklarirate polja in jih ustvarite z velikostjo. Ko je določena, ne morete spremeniti velikosti polja.
Zaključek
V tej vadnici smo vam predstavili koncept nizov v Javi. Razpravljali smo o glavnih temah, povezanih z nizi Java.
V naslednjih vajah bomo podrobno raziskali te teme, povezane z arrayom v Javi.
Srečno učenje !!
Priporočeno branje
- Java vrste podatkov, zanke, nizi, stikala in trditve
- Java izjeme in obravnava izjem z primeri
- Java Generics Vadnica s primeri
- Vadnica Java vmesnika in abstraktnega razreda s primeri
- Uvod v programski jezik Java - Video vadnica
- Java String z vmesnikom String Buffer in String Builder
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Večdimenzionalni nizi in neravni nizi v C #