a computer monitor sitting on top of a wooden desk
|

Darbas su masyvais Java: kaip jį deklaruoti, užpildyti ir parodyti

Sandėli­av­i­mo patalpo­je yra skyr­i­ai, kurie užpildyti turiniu. Dedame daik­tus į spin­tos lenty­nas arba pil­ame van­denį į ledukų forme­les. Visa tai panašu į tai, kaip masy­vai veikia „Java“. Juose vienu metu yra kelios reikšmės. Tai patogu, nes nereikia kiekvieną kartą kur­ti atskiro kin­ta­mo­jo. Be masyvų sunku įsi­vaiz­duoti dar­bą su dideli­ais duomenų kieki­ais. Šiame straip­sny­je mes jums pasakysime, kas yra „Java“ masy­vas, kaip jį deklaruoti ir užpildyti.

Dau­giau apie Java masyvus ir kitas vienos iš pop­u­liari­ausių pro­gra­mav­i­mo kalbų sin­tak­sės ypatybes galite sužinoti kur­su­ose .

Masyvas Java — kas tai yra

Stan­dar­ti­nis kin­ta­ma­sis turi tik vieną reikšmę. Masy­vai gali saugoti kelis to paties tipo ele­men­tus. Galite įsi­vaiz­duoti juos kaip lan­gelius su duomenimis – viena ląstelė vien­am ele­men­tui. Be to, kiekvien­as iš jų turi adresą arba indek­są, su kuri­uo galite gre­itai pasiek­ti. Į masyvus negal­i­ma sudėti skirt­ingų tipų duomenų – pavyzdžiui, sveikųjų skaičių ir fraz­ių.

Dirb­da­mi su to paties tipo duomenų rink­iniu be masyvų, kiekvien­am ele­men­tui turėsite deklaruoti savo kin­tamąjį. Taip pat nus­tatykite įvardi­ji­mo taisyk­les, kad juos atskir­tumėte. Tai ilgas laikas ir gana sunku prisim­inti tok­ią infor­ma­ci­jos apimtį. Nau­do­da­mi masyvus galite pateik­ti sąrašus arba eilutes kaip vieną struk­tūrą ir dirbti su jais kaip visuma. Prieš pradedant dirbti su masyvu, jis, kaip ir kiti kin­tamieji, turi būti deklaruo­tas.

Mergina rašo kodą

Masyvo deklaravimas Java

Mes paskelb­sime kin­tamąjį, kuris padės pasiek­ti norimą lan­gelį, nurody­da­mi jo indek­są (eilės numerį). Java tai atro­do taip:

int[ ] inds

dvigu­bi [ ] skaiči­ai

char[ ] raidės

Masy­vo kin­tamųjų tipas turi būti kvadratas, o prieš juos nėra tar­po. Masy­vo tipas gali būti bet koks (sveika­sis skaičius, eilutė, data). Viena skli­austų pora rodo, kad kin­ta­ma­sis yra vien­ma­tis masy­vas. Kar­tais skli­aus­tai deda­mi skirtin­gai:

int [] myArray1 – su tarpu

int myArray1[] – po kin­ta­mo­jo pava­din­i­mo.

Antro­ji parink­tis kilusi iš C kal­bos, tači­au nau­do­ja­ma daug reči­au. Jei rašote kodą, geri­au nau­doti žinomą būdą ir jo nekeisti viso dar­bo metu. Papras­tai kin­ta­mo­jo pava­din­i­mas nurodomas daugiskai­ta. Tai gali būti daik­tavardis (obuo­li­ai, ark­li­ai, auto­mo­bil­i­ai), būd­vardis arba įvardis. Aukšči­au pateik­tame pavyzdy­je nau­do­jome ben­drąjį žymėji­mo masyvą, kuris reiškia rink­inį. Geri­au masy­vams suteik­ti tik­slesnius pava­din­imus, kad galė­tumėte tik­sli­ai suprasti, kas yra vidu­je. Pavyzdžiui, žaidė­jai ar stu­den­tai. Masy­vas taip pat gali saugoti nuorodų duomenų tipus.

Kurse „ Java Devel­op­er from Scratch “ pir­mi­au­sia išmok­site „Java“ duomenų tipus, o tada – vien­mačius ir dau­gia­mačius masyvus. 80 pro­cen­tų moky­mosi suside­da iš prak­tikos – tai žymi­ai palengv­ina sin­tak­sės supra­timą.

Masyvo kūrimas Java

Kai paskelb­sime masyvą, gal­ime tęsti jo kūrimą. Čia turime pasakyti kom­pil­ia­to­riui objek­to dydį. Juk jo požiūriu masy­vas yra objek­tas. Kur­da­mi nau­do­jame žodį nau­jas.

nau­jas masyvo_pavadinimas[masyvo_ilgis]

arba

int[ ] stu­den­tai = nau­jas int[7]

Mes paskel­bėme sveikųjų skaičių masyvą, vad­i­namą stu­den­tais, ir pasakėme, kad jame yra 7 lan­geli­ai. Kiekvien­ame iš jų bus tam tikras skaičius. Galite atlik­ti kitą tipą (jie bus lygiaverči­ai, tači­au kodui sutrump­in­ti geri­au nau­doti aukšči­au pateik­tą parink­tį):

int[ ] stu­den­tai;

stu­den­tai = nau­jas tarpinis[7]

Masyvo ilgis

Kiekvien­as masy­vo ele­men­tas turi savo indek­są. Ben­dras ilgis gali būti teigia­mas arba nulis. Svar­bu atsim­inti, kad sukūrus masyvą ilgio keisti negal­i­ma – vad­i­nasi, nesikeičia ir jo dydis. Java ele­men­tų numeraci­ja praside­da nuo nulio. Jei mūsų masy­vas suside­da iš 7 ele­men­tų, tai pir­ma­sis turės indek­są 0, o pasku­ti­nis – 6. Ilgio kin­ta­ma­sis padės sužinoti ilgį:

int[ ] stu­den­tai = nau­jas int[7]; — sukur­ti 7 ele­men­tų masyvą, vad­i­namą stu­den­tais

System.out.println(studentas.ilgis) ; — rodyti masy­vo ilgį.

Pažvelkime į dar kelis pavyzdžius, kad supras­tume kiekvieno masy­vo ele­men­to ilgį ir skaičių.

int[ ] masyvas1 = { 1,4,8} – skaičius 1 turės indek­są 0, 4 – 2, 8 – 3

string[ ] array2 = { “Karš­ta”, “šal­ta”} – pir­ma­sis žodis indek­sas 0, o antra­sis – 1

Vaikino programavimas nešiojamajame kompiuteryje

Masyvo inicijavimas Java

Norė­da­mi paleisti masyvą, turite jį užpildyti reikšmėmis arba ini­ci­juoti. Galite nau­doti įvairias parink­tis.

Greitas inicijavimas

Sty­gos[ ] spalvos = nau­ja eilutė[ ]{«Mėly­na», «Gel­tona», «Pil­ka»}

arba be nau­jos

Sty­ginių[ ] spalvos = {«Mėly­na», «Gel­tona», «Pil­ka»}

Pato­gus pasirinki­mas tais atve­jais, kai žinote, kokios reikšmės bus masyve. Mes tiesiog juos išvardi­jame atskir­da­mi kableli­ais, kaip darėme aukšči­au. Java sukur­ta taip, kad masyve saugo­mi ne objek­tai, o nuoro­dos į juos. Jie veda į vietą, kur yra šis objek­tas. Daž­ni­au­si­ai šis ini­ci­jav­i­mo meto­das nau­do­ja­mas, kai reikšmių skaičius yra mažas ir jūs jas žinote iš anksto.

Be „Java“ kūri­mo kursų, inter­nete fir­mos siū­lo ir kitų gal­imy­bių trokš­tantiems ar prak­tikuo­jantiems pro­gra­muo­to­jams. Pavyzdžiui, žini­atin­klio kūri­mo moky­mas arba C++ kur­sas pradedantiesiems .

Inicijavimas pagal indeksą

Kaip prisi­me­nate, reikšmių numeraci­ja praside­da nuo nulio. O masy­vo ilgio ilgis yra 1. Taip atsitin­ka todėl, kad masy­vo ilgis visa­da vienu viene­tu dides­nis už paskutinį indek­są – juk pradedame skaiči­uoti nuo 0. Pavyzdys:

int[ ] skaiči­ai = nau­jas int[2];

skaičiai[0] = 5;

skaičiai[1] = 8;

int a = skaičiai[0];

int b = skaičiai[1];

System.out.println(a);

System.out.println(b);

Išva­da:

5

8

Čia mes turime rank­iniu būdu nurody­tas kiekvieno masy­vo ele­men­to reikšmes. Pavyzdy­je tai yra skaiči­ai 5 ir 8. Tada jie buvo suskaiči­uoti iš jo ir patalpin­ti į kin­ta­mu­o­sius a ir b. Šis meto­das yra panašus į pir­mąjį, tači­au yra kelių kom­po­nen­tų, paly­gin­ti su gre­ituo­ju vari­antu. Tai­gi masy­vas gali būti lankstes­nis, jei ini­ci­jav­i­mas atlieka­mas skirtin­gose ​​pro­gramos vietose, kai nus­tatoma tokia užduo­tis.

Ciklas

Dar­bas su masyvu rank­iniu būdu ne visa­da tin­ka ini­ci­juoti. Kodas tam­pa masyves­nis ir užtrun­ka dau­giau laiko. Pro­ce­sui autom­a­tizuoti nau­do­ja­mi cik­lai. Norė­da­mi nau­doti kilpą, turite žinoti pirminę indek­so reikšmę, masy­vo ilgį ir galutinę indek­so reikšmę. Masy­vams tin­kami­au­sia for kil­pa. Šiuo atve­ju duomenų tipas gali būti int, short, baitas arba char.

int[ ] skaiči­ai = {1, 2, 3, 4, 5};

for (int i = 0; i < skaičiai.ilgis; i++) {

System.out.println(skaičiai[i])

Kitas pavyzdys su įver­tin­i­mais:

int[ ] žen­klai = {3, 5, 4};

Sty­ginių[ ] var­dai = {“Kolya”, “Ari­na”, “Masha”};

for (int i = 0; i < marks.length; i++) {

System.out.printf(“%s bus įvert­in­tas %d%n”, vardai[i], pažymiai[i]);

}

Kolya gau­na 3 įver­tin­imą

Ari­na gau­na 5 balus

Masha gau­na 4 įver­tin­imą

Kin­ta­ma­sis i nau­do­ja­mas kaip indek­są nuro­dan­tis skaitik­lis. Prad­inė jo reikšmė yra 0, tači­au, kai cik­lai veikia, kin­ta­ma­sis pasikeičia į 1, kai praeina viena kil­pa. Cik­las baigiasi, kai nebe­gali būti tenk­i­na­ma sąly­ga i < marks.length. Jei peržengsite masy­vo ribas, įvyks klai­da. Tai galite padary­ti kairė­je, jei indek­sas yra neigia­mas, arba dešinė­je, jei jis yra dides­nis už masy­vo ilgį arba jam lygus. Klai­dos kodas atro­do taip. Prob­le­ma ta, kad masyve nėra lan­ge­lio su indek­su 4. Pasiro­do, skaičiai[4] = 4 + 1.

int[ ] skaiči­ai = nau­jas int[4];

for (int i = 0; i <= skaičiai.ilgis; i++) {

skaiči­ai [i] = i + 1

Vaikinas rašo kodą kompiuteryje

Masyvo išvestis ir foreach ciklas

Galite išvesti kilpą nau­do­da­mi aukšči­au aprašytą for kilpą. Tači­au yra supa­prastin­ta ver­si­ja, vad­i­na­ma fore­ach. Jį sudaro dvi dalys, atskir­tos dvi­tašk­iu. Dešinė­je bus masy­vo pava­din­i­mas, kairė­je – į ele­men­tus panašaus tipo kin­ta­ma­sis. Pagal stan­dartą kiekvien­as ele­men­tas paima­mas iš masy­vo ir perke­lia­mas į kin­tamąjį, o cik­las pro­gre­suo­jant palaip­sniui išvedamas. Tiesą sakant, jis skiri­asi išvaiz­da, tači­au vykdy­mo maši­nai jie yra vien­o­di. Paly­ginkite dvi parink­tis:

dėl

Sty­ginių[ ] spalvos = {“Bal­ta”, “Raudona”, “Juo­da”, “Žalia”, “Oranžinė”, “Mėly­na”, “Vio­let­inė”};

for (int i = 0; i < color.length; i++) {

System.out.println(spalvos[i])

kiekvien­am

Sty­ginių[ ] spalvos = {“Bal­ta”, “Raudona”, “Juo­da”, “Žalia”, “Oranžinė”, “Mėly­na”, “Vio­let­inė”};

for (Eilutės spal­va: spalvos) {

System.out.println(spalva)

Dėl antro­sios parink­ties galite pasiek­ti ele­men­tus. Tači­au negalite nau­doti indek­sav­i­mo arba pasiek­ti vertės ne nurody­ta tvar­ka. Be to, negalėsite pakeisti ar ištrin­ti vertės. Fore­ach labi­au tin­ka pro­duk­ci­jai. Ir jei mes kalbame apie sudėtingesnes operaci­jas, tai geri­au nau­doti.

Dau­giau pavyzdžių:

int[ ] masy­vas = {1, 2, 3, 4, 5};

for (int ele­men­tas : masy­vas) {

System.out.println(elementas)

Vienmatis ir dvimatis Java masyvas

Masy­vas yra objek­tas. Mes gal­ime tai deklaruoti kaip kin­tamąjį. Toks masy­vas bus vad­i­na­mas dvi­mačiu. Jo struk­tūra atro­do taip:

dvigubas[ ][ ] myArray

Paskel­bkime dvi­matį masyvą:

int[ ][ ] du = nau­jas int[3][4]

Priskirkime indek­sams reikšmes:

int[ ][ ] du = nau­jas int[3][4];

du[0][1] = 2

Dvi­ma­tis masy­vas gali atrodyti taip:

int [ ][ ] twom­asAr­ray = {{5,8,9,4}, {9,4,1,3}, {9,8,2,3}}

Gre­itas išėmi­mas:

int [ ][ ] twom­asAr­ray = {{5,8,9,4}, {9,4,1,3}, {9,8,2,3}}

System.out.printLn(Arrays.deepToString(twomasArray))

[[5,8,9,4], [9,4,1,3], [9,8,2,3]]

Koks yra dvi­mačių masyvų pranašu­mas? Pažiūrėkime į pavyzdį. Tarkime, reikia rasti mokyk­lin­ių dalykų pažymių arit­met­inį vidurkį. Jei turite keturis vien­mačius masyvus, turite parašyti 4 cik­lus, iš kurių kiekvien­ame reikia apskaiči­uoti kiekvieno ele­men­to arit­met­inį vidurkį. Su dvi­mačiu masyvu viskas paprasči­au. Pakan­ka eiti per ele­men­tus, pridedant 2 kilpoms. Taip gali atrodyti dvi­ma­tis masy­vas nau­do­jant kil­pas „two for“:

for (int i = 0; i < masyvas.ilgis; i++) {

for (int j = 0; j < masyvas[i].ilgis; j++) {

System.out.print(masyvas[i][j] + «\t»)

Norite tap­ti back­end kūrėju, bet nežinote nuo ko pradėti? Pabandykite lankyti įvadines pamokas į inter­ne­tinius kur­sus iš patikimų mokyk­lų.

Mergina programuoja prie stalo

Darbo su masyvais metodai

Pažvelkime į kelis meto­dus ir būdus, kurie palengvins dar­bą su masy­vais.

Rūšiavimas

Jei reikia rūši­uoti ele­men­tus didė­jančia tvar­ka, nau­dokite Arrays.sort(a) . Kitais atve­jais padės Arrays.sort(a, Com­para­tor c) antra­sis kom­po­nen­tas lygi­na du gre­timus ele­men­tus.

int[ ] mano skaiči­ai = nau­jas int[ ] { 8, 6, 3, 1 };

Masyvai.rūšiuoti(manoskaičiai);

System.out.println( Arrays.toString(manonumeriai))

1,3,6,8

Užpildymas

Norint užpildyti masyvus iden­tiškais ele­men­tais, jums nereikia rašyti cik­lo Arrays.fill(a, val); Jis peržiūrės masy­vo a ele­men­tus ir priskirs reikšmę val .

int[] mano skaiči­ai = nau­jas int[8];

Masyvai.užpildyti(manoskaičiai, 5);

System.out.println( Arrays.toString(manonumeriai))

5,5,5,5,5,5,5,5

Lyginiai ir nelyginiai elementai

Jei reikia atski­rai išvesti lyginius skaičius, vadovauk­itės šiuo pavyzdžiu:

dvigubas[ ] manoSkaiči­ai = {2, 2,9, 3, 18, 25,9};

System.out.print(“Lyginiai masy­vo myNum­bers ele­men­tai: ”);

for (int i = 0; i < manoSkaičiai.ilgis; i++) {

if(manoSkaičiai[i]%2 == 0){

System.out.print(manoSkaičiai[i] + «, «)

Lygini­ai myNum­bers masy­vo ele­men­tai: 2.0, 18.0

Nely­gi­nis:

dvigubas[ ] mano skaiči­ai = {2, 2,9, 3, 18, 25,9}

System.out.print(“Nelyginiai masy­vo myNum­bers ele­men­tai: ”);

for (int i = 0; i < manoSkaičiai.ilgis; i++) {

if(manoSkaičiai[i]%2 != 0){

System.out.print(manoSkaičiai[i] + «, «)

Lygini­ai myNum­bers masy­vo ele­men­tai: 2.9, 3, 25.9

Žmonės dirba prie kompiuterių

Visų elementų suma

Masy­vo ele­men­tų sumos apskaiči­av­i­mo Java pro­gramo­je pavyzdys:

dvigubas[ ] manoSkaiči­ai = {4, 19, 1,3, 3, 25,7};

dvigu­ba suma = 0;

for (int i = 0; i < manoSkaičiai.ilgis; i++) {

iš viso += manoSkaičiai[i];

System.out.println(“Masyvo myNum­bers ele­men­tų suma: ” + iš viso)

„myNum­bers“ masy­vo ele­men­tų suma: 53

su fore­ach kil­pa:

dvigubas[ ] manoSkaiči­ai = {4, 19, 1,3, 3, 25,7};

dvigu­ba suma = 0;

for(double ele­ment : myNum­bers) {

ben­dras += ele­men­tas;

System.out.println(“Masyvo manoSkaiči­ai suma: ” + iš viso)

„myNum­bers“ masy­vo suma: 53

Rezultatai

  • Masy­vas suside­da iš to paties tipo ele­men­tų, kurie yra vien­as po kito. Kiekvieną ele­men­tą gal­i­ma pasiek­ti nau­do­jant rodyk­lę.
  • Masy­vo ilgis nesikeičia jį sukūrus.
  • Java pro­gramo­je ele­men­tai masyvu­ose numeruo­ja­mi pradedant nuo nulio.
  • Galite sukur­ti masyvus, kurių ele­men­tai yra kiti masy­vai. Jie vad­i­na­mi dau­gia­mači­ais.
  • Java turi daug patogių dar­bo su masy­vais metodų, kurie daro kodo rašymą dar pato­ges­nį.

Įvertinkite straip­snį

0 / 12 Įver­tin­i­mas 0

Jūsų įver­tin­i­mas:

Viršutinis paveiksliukas: © Karl Pawlowicz

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *