Darbas su masyvais Java: kaip jį deklaruoti, užpildyti ir parodyti
Sandėliavimo patalpoje yra skyriai, kurie užpildyti turiniu. Dedame daiktus į spintos lentynas arba pilame vandenį į ledukų formeles. Visa tai panašu į tai, kaip masyvai veikia „Java“. Juose vienu metu yra kelios reikšmės. Tai patogu, nes nereikia kiekvieną kartą kurti atskiro kintamojo. Be masyvų sunku įsivaizduoti darbą su dideliais duomenų kiekiais. Šiame straipsnyje mes jums pasakysime, kas yra „Java“ masyvas, kaip jį deklaruoti ir užpildyti.
Daugiau apie Java masyvus ir kitas vienos iš populiariausių programavimo kalbų sintaksės ypatybes galite sužinoti kursuose .
Masyvas Java – kas tai yra
Standartinis kintamasis turi tik vieną reikšmę. Masyvai gali saugoti kelis to paties tipo elementus. Galite įsivaizduoti juos kaip langelius su duomenimis – viena ląstelė vienam elementui. Be to, kiekvienas iš jų turi adresą arba indeksą, su kuriuo galite greitai pasiekti. Į masyvus negalima sudėti skirtingų tipų duomenų – pavyzdžiui, sveikųjų skaičių ir frazių.
Dirbdami su to paties tipo duomenų rinkiniu be masyvų, kiekvienam elementui turėsite deklaruoti savo kintamąjį. Taip pat nustatykite įvardijimo taisykles, kad juos atskirtumėte. Tai ilgas laikas ir gana sunku prisiminti tokią informacijos apimtį. Naudodami masyvus galite pateikti sąrašus arba eilutes kaip vieną struktūrą ir dirbti su jais kaip visuma. Prieš pradedant dirbti su masyvu, jis, kaip ir kiti kintamieji, turi būti deklaruotas.
Masyvo deklaravimas Java
Mes paskelbsime kintamąjį, kuris padės pasiekti norimą langelį, nurodydami jo indeksą (eilės numerį). Java tai atrodo taip:
int[ ] inds
dvigubi [ ] skaičiai
char[ ] raidės
Masyvo kintamųjų tipas turi būti kvadratas, o prieš juos nėra tarpo. Masyvo tipas gali būti bet koks (sveikasis skaičius, eilutė, data). Viena skliaustų pora rodo, kad kintamasis yra vienmatis masyvas. Kartais skliaustai dedami skirtingai:
int [] myArray1 – su tarpu
int myArray1[] – po kintamojo pavadinimo.
Antroji parinktis kilusi iš C kalbos, tačiau naudojama daug rečiau. Jei rašote kodą, geriau naudoti žinomą būdą ir jo nekeisti viso darbo metu. Paprastai kintamojo pavadinimas nurodomas daugiskaita. Tai gali būti daiktavardis (obuoliai, arkliai, automobiliai), būdvardis arba įvardis. Aukščiau pateiktame pavyzdyje naudojome bendrąjį žymėjimo masyvą, kuris reiškia rinkinį. Geriau masyvams suteikti tikslesnius pavadinimus, kad galėtumėte tiksliai suprasti, kas yra viduje. Pavyzdžiui, žaidėjai ar studentai. Masyvas taip pat gali saugoti nuorodų duomenų tipus.
Kurse „
Masyvo kūrimas Java
Kai paskelbsime masyvą, galime tęsti jo kūrimą. Čia turime pasakyti kompiliatoriui objekto dydį. Juk jo požiūriu masyvas yra objektas. Kurdami naudojame žodį naujas.
naujas masyvo_pavadinimas[masyvo_ilgis]
arba
int[ ] studentai = naujas int[7]
Mes paskelbėme sveikųjų skaičių masyvą, vadinamą studentais, ir pasakėme, kad jame yra 7 langeliai. Kiekviename iš jų bus tam tikras skaičius. Galite atlikti kitą tipą (jie bus lygiaverčiai, tačiau kodui sutrumpinti geriau naudoti aukščiau pateiktą parinktį):
int[ ] studentai;
studentai = naujas tarpinis[7]
Masyvo ilgis
Kiekvienas masyvo elementas turi savo indeksą. Bendras ilgis gali būti teigiamas arba nulis. Svarbu atsiminti, kad sukūrus masyvą ilgio keisti negalima – vadinasi, nesikeičia ir jo dydis. Java elementų numeracija prasideda nuo nulio. Jei mūsų masyvas susideda iš 7 elementų, tai pirmasis turės indeksą 0, o paskutinis – 6. Ilgio kintamasis padės sužinoti ilgį:
int[ ] studentai = naujas int[7]; — sukurti 7 elementų masyvą, vadinamą studentais
System.out.println(studentas.ilgis) ; — rodyti masyvo ilgį.
Pažvelkime į dar kelis pavyzdžius, kad suprastume kiekvieno masyvo elemento ilgį ir skaičių.
int[ ] masyvas1 = { 1,4,8} – skaičius 1 turės indeksą 0, 4 – 2, 8 – 3
string[ ] array2 = { “Karšta”, “šalta”} – pirmasis žodis indeksas 0, o antrasis – 1
Masyvo inicijavimas Java
Norėdami paleisti masyvą, turite jį užpildyti reikšmėmis arba inicijuoti. Galite naudoti įvairias parinktis.
Greitas inicijavimas
Stygos[ ] spalvos = nauja eilutė[ ]{«Mėlyna», «Geltona», «Pilka»}
arba be naujos
Styginių[ ] spalvos = {«Mėlyna», «Geltona», «Pilka»}
Patogus pasirinkimas tais atvejais, kai žinote, kokios reikšmės bus masyve. Mes tiesiog juos išvardijame atskirdami kableliais, kaip darėme aukščiau. Java sukurta taip, kad masyve saugomi ne objektai, o nuorodos į juos. Jie veda į vietą, kur yra šis objektas. Dažniausiai šis inicijavimo metodas naudojamas, kai reikšmių skaičius yra mažas ir jūs jas žinote iš anksto.
Be „Java“ kūrimo kursų, internete firmos siūlo ir kitų galimybių trokštantiems ar praktikuojantiems programuotojams. Pavyzdžiui, žiniatinklio kūrimo mokymas arba C++ kursas pradedantiesiems .
Inicijavimas pagal indeksą
Kaip prisimenate, reikšmių numeracija prasideda nuo nulio. O masyvo ilgio ilgis yra 1. Taip atsitinka todėl, kad masyvo ilgis visada vienu vienetu didesnis už paskutinį indeksą – juk pradedame skaičiuoti nuo 0. Pavyzdys:
int[ ] skaičiai = naujas 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švada:
5
8
Čia mes turime rankiniu būdu nurodytas kiekvieno masyvo elemento reikšmes. Pavyzdyje tai yra skaičiai 5 ir 8. Tada jie buvo suskaičiuoti iš jo ir patalpinti į kintamuosius a ir b. Šis metodas yra panašus į pirmąjį, tačiau yra kelių komponentų, palyginti su greituoju variantu. Taigi masyvas gali būti lankstesnis, jei inicijavimas atliekamas skirtingose programos vietose, kai nustatoma tokia užduotis.
Ciklas
Darbas su masyvu rankiniu būdu ne visada tinka inicijuoti. Kodas tampa masyvesnis ir užtrunka daugiau laiko. Procesui automatizuoti naudojami ciklai. Norėdami naudoti kilpą, turite žinoti pirminę indekso reikšmę, masyvo ilgį ir galutinę indekso reikšmę. Masyvams tinkamiausia for kilpa. Šiuo atveju duomenų tipas gali būti int, short, baitas arba char.
int[ ] skaičiai = {1, 2, 3, 4, 5};
for (int i = 0; i < skaičiai.ilgis; i++) {
System.out.println(skaičiai[i])
Kitas pavyzdys su įvertinimais:
int[ ] ženklai = {3, 5, 4};
Styginių[ ] vardai = {“Kolya”, “Arina”, “Masha”};
for (int i = 0; i < marks.length; i++) {
System.out.printf(“%s bus įvertintas %d%n”, vardai[i], pažymiai[i]);
}
Kolya gauna 3 įvertinimą
Arina gauna 5 balus
Masha gauna 4 įvertinimą
Kintamasis i naudojamas kaip indeksą nurodantis skaitiklis. Pradinė jo reikšmė yra 0, tačiau, kai ciklai veikia, kintamasis pasikeičia į 1, kai praeina viena kilpa. Ciklas baigiasi, kai nebegali būti tenkinama sąlyga i < marks.length. Jei peržengsite masyvo ribas, įvyks klaida. Tai galite padaryti kairėje, jei indeksas yra neigiamas, arba dešinėje, jei jis yra didesnis už masyvo ilgį arba jam lygus. Klaidos kodas atrodo taip. Problema ta, kad masyve nėra langelio su indeksu 4. Pasirodo, skaičiai[4] = 4 + 1.
int[ ] skaičiai = naujas int[4];
for (int i = 0; i <= skaičiai.ilgis; i++) {
skaičiai [i] = i + 1
Masyvo išvestis ir foreach ciklas
Galite išvesti kilpą naudodami aukščiau aprašytą for kilpą. Tačiau yra supaprastinta versija, vadinama foreach. Jį sudaro dvi dalys, atskirtos dvitaškiu. Dešinėje bus masyvo pavadinimas, kairėje – į elementus panašaus tipo kintamasis. Pagal standartą kiekvienas elementas paimamas iš masyvo ir perkeliamas į kintamąjį, o ciklas progresuojant palaipsniui išvedamas. Tiesą sakant, jis skiriasi išvaizda, tačiau vykdymo mašinai jie yra vienodi. Palyginkite dvi parinktis:
dėl
Styginių[ ] spalvos = {“Balta”, “Raudona”, “Juoda”, “Žalia”, “Oranžinė”, “Mėlyna”, “Violetinė”};
for (int i = 0; i < color.length; i++) {
System.out.println(spalvos[i])
kiekvienam
Styginių[ ] spalvos = {“Balta”, “Raudona”, “Juoda”, “Žalia”, “Oranžinė”, “Mėlyna”, “Violetinė”};
for (Eilutės spalva: spalvos) {
System.out.println(spalva)
Dėl antrosios parinkties galite pasiekti elementus. Tačiau negalite naudoti indeksavimo arba pasiekti vertės ne nurodyta tvarka. Be to, negalėsite pakeisti ar ištrinti vertės. Foreach labiau tinka produkcijai. Ir jei mes kalbame apie sudėtingesnes operacijas, tai geriau naudoti.
Daugiau pavyzdžių:
int[ ] masyvas = {1, 2, 3, 4, 5};
for (int elementas : masyvas) {
System.out.println(elementas)
Vienmatis ir dvimatis Java masyvas
Masyvas yra objektas. Mes galime tai deklaruoti kaip kintamąjį. Toks masyvas bus vadinamas dvimačiu. Jo struktūra atrodo taip:
dvigubas[ ][ ] myArray
Paskelbkime dvimatį masyvą:
int[ ][ ] du = naujas int[3][4]
Priskirkime indeksams reikšmes:
int[ ][ ] du = naujas int[3][4];
du[0][1] = 2
Dvimatis masyvas gali atrodyti taip:
int [ ][ ] twomasArray = {{5,8,9,4}, {9,4,1,3}, {9,8,2,3}}
Greitas išėmimas:
int [ ][ ] twomasArray = {{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 dvimačių masyvų pranašumas? Pažiūrėkime į pavyzdį. Tarkime, reikia rasti mokyklinių dalykų pažymių aritmetinį vidurkį. Jei turite keturis vienmačius masyvus, turite parašyti 4 ciklus, iš kurių kiekviename reikia apskaičiuoti kiekvieno elemento aritmetinį vidurkį. Su dvimačiu masyvu viskas paprasčiau. Pakanka eiti per elementus, pridedant 2 kilpoms. Taip gali atrodyti dvimatis masyvas naudojant kilpas „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 tapti backend kūrėju, bet nežinote nuo ko pradėti? Pabandykite lankyti įvadines pamokas į internetinius kursus iš patikimų mokyklų.
Darbo su masyvais metodai
Pažvelkime į kelis metodus ir būdus, kurie palengvins darbą su masyvais.
Rūšiavimas
Jei reikia rūšiuoti elementus didėjančia tvarka, naudokite Arrays.sort(a) . Kitais atvejais padės Arrays.sort(a, Comparator c) antrasis komponentas lygina du gretimus elementus.
int[ ] mano skaičiai = naujas 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 identiškais elementais, jums nereikia rašyti ciklo Arrays.fill(a, val); Jis peržiūrės masyvo a elementus ir priskirs reikšmę val .
int[] mano skaičiai = naujas 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 atskirai išvesti lyginius skaičius, vadovaukitės šiuo pavyzdžiu:
dvigubas[ ] manoSkaičiai = {2, 2,9, 3, 18, 25,9};
System.out.print(“Lyginiai masyvo myNumbers elementai: “);
for (int i = 0; i < manoSkaičiai.ilgis; i++) {
if(manoSkaičiai[i]%2 == 0){
System.out.print(manoSkaičiai[i] + «, «)
Lyginiai myNumbers masyvo elementai: 2.0, 18.0
Nelyginis:
dvigubas[ ] mano skaičiai = {2, 2,9, 3, 18, 25,9}
System.out.print(“Nelyginiai masyvo myNumbers elementai: “);
for (int i = 0; i < manoSkaičiai.ilgis; i++) {
if(manoSkaičiai[i]%2 != 0){
System.out.print(manoSkaičiai[i] + «, «)
Lyginiai myNumbers masyvo elementai: 2.9, 3, 25.9
Visų elementų suma
Masyvo elementų sumos apskaičiavimo Java programoje pavyzdys:
dvigubas[ ] manoSkaičiai = {4, 19, 1,3, 3, 25,7};
dviguba suma = 0;
for (int i = 0; i < manoSkaičiai.ilgis; i++) {
iš viso += manoSkaičiai[i];
System.out.println(“Masyvo myNumbers elementų suma: ” + iš viso)
„myNumbers“ masyvo elementų suma: 53
su foreach kilpa:
dvigubas[ ] manoSkaičiai = {4, 19, 1,3, 3, 25,7};
dviguba suma = 0;
for(double element : myNumbers) {
bendras += elementas;
System.out.println(“Masyvo manoSkaičiai suma: ” + iš viso)
„myNumbers“ masyvo suma: 53
Rezultatai
- Masyvas susideda iš to paties tipo elementų, kurie yra vienas po kito. Kiekvieną elementą galima pasiekti naudojant rodyklę.
- Masyvo ilgis nesikeičia jį sukūrus.
- Java programoje elementai masyvuose numeruojami pradedant nuo nulio.
- Galite sukurti masyvus, kurių elementai yra kiti masyvai. Jie vadinami daugiamačiais.
- Java turi daug patogių darbo su masyvais metodų, kurie daro kodo rašymą dar patogesnį.
Įvertinkite straipsnį