Turinys
Tam tikru momentu kurdami programinės įrangos kūrėjus, susidursime su situacijomis, kai savo programose turime atlikti daug sudėtingesnių dalykų, paprastai tai reiškia sudėtingesnį duomenų valdymą ir kitokią jų organizavimą.Duomenų struktūraTam mes turime Duomenų struktūros, kurie leidžia mums tvarkyti savo informaciją programoje, kad galėtume tvarkingai ir schemiškai prieiti prie jos. In „Java“ Savo klasių ir standartinių bibliotekų dėka galime valdyti įvairių tipų struktūras, todėl sužinoję, kokias turime, galime pasinaudoti reikiamu pranašumu ir taip pasiekti savo tikslų.
A masyvas yra struktūros tipas, turintis tiesinę struktūrą ir galintis saugoti to paties tipo duomenų kiekį. Duomenys, kuriuos galite saugoti, yra primityvūs, pvz int, bool ir kt. Bet jūs taip pat galite saugoti objektų tipus, nors šiuo atveju jis yra saugomas kaip nuoroda į objektą, o ne į objektą kaip tokį, tačiau tai yra labai naudinga žinoti.
PrieigaKadangi turinys yra linijinis, prieiga prie jo turi būti vykdoma nuosekliai, nors galime tiesiogiai nurodyti jo rodyklę ir gauti jo turinį, tačiau daugeliu atvejų maršrutas, kurį galime atlikti naudojant šią struktūrą, reaguoja į jūsų indeksų seką.
Kai turime vieno elemento indeksą, tai yra masyvas arba vienmatis vektoriusKita vertus, kai kiekvienam elementui turime daugiau nei vieną indeksą, mes kalbame apie masyvus daugiamatis, tai yra, indekse mes turime vidinę struktūrą su savo indeksais.
Masyvo paskelbimas yra labai paprastas, mes turime tik apibrėžti duomenų tipą, kurį jis ketina saugoti, ir nurodyti skliausteliuose matmenis, tada mes turime apibrėžti jo pavadinimą ir su juo galime pradėti jį naudoti.
Nors yra keli masyvo deklaravimo būdai, pageidautina yra trumpa forma, kaip matome toliau:
type [] nameArrary = naujas tipas [ilgis];
Masyvo atveju daugiamatis mes galime padaryti tą patį, bet pridėdami naujus sluoksnius ar matmenis toje pačioje deklaracijoje, pavyzdžiui:
Dviejų matmenų masyvas:
tipas [] [] nameArrary = naujas tipas [ilgis] [ilgis];
Trimatis masyvas:
tipas [] [] [] nameArrary = naujas tipas [ilgis] [ilgis] [ilgis];
Vienintelis dalykas, kurį turime turėti omenyje, yra tas, kad po trijų dimensijų viskas tampa daug sudėtingesnė, tačiau tai diktuos mūsų poreikiai programos kūrimo metu.
Norėdami pereiti per masyvą, turime naudoti vieną iš turimų iteracinių ciklų dėl vienas iš mėgstamiausių, nes galime nurodyti masyvo dydį ir pereiti prie kiekvieno jo elemento.
Turime nepamiršti, kad masyvų indeksai prasideda nuo nulio, taigi trijų elementų masyve jų indeksai būtų [0], [1], [2], Į tai reikia atsižvelgti, nes tai nėra tradicinė sąskaita, todėl gali kilti painiavos.
Bendras masyvo kilpos pavyzdys yra toks:
už (int i = 0; i
Tuo pačiu būdu, kaip ir tame mažame pavyzdyje, kuriame buvo atspausdintas atitinkamo indekso turinys, mes taip pat galime atlikti nuoseklius priskyrimus ir kitas operacijas su masyvu. Daugiamačio masyvo atveju mes turime atlikti ciklą kiekvienam iš mūsų turimų matmenų, todėl kalbame, kad po daugiau nei trijų matmenų masyvas tampa labai sudėtingas.
Mes sukursime nedidelį kodą, kuriame nustatysime masyvą, tada apžiūrėsime jo elementus ir parodysime juos ekrane. Taigi pažiūrėkime, kaip atrodo mūsų kodas:
public class ExampleArray1 {public static void main (String [] argv) {int [] ourArray = new int [12]; už (int i = 0; i <12; i ++) {ourArray [i] = i +1; System.out.println ("Masyvo turinys: [" + i + "] yra:" + ourArray [i]); } System.out.println ("Bendras masyvo ilgis:" + ourArray.length); }}
Šioje programoje pirmas dalykas, kurį mes darome apibrėžę savo klasę ir metodą pagrindinis yra apibrėžti tipo masyvą, pavadintą int mūsų masyvas kuriam priskiriame 12 elementų ilgį, tada su for ciklu, kuris eina nuo 0 iki 11, kiekvienam iš masyvo indeksų priskirsime vertę, tada nedelsdami tai padarysime, atspausdinsime jo vertę ir galiausiai naudosime nuosavybė ilgio masyvo, kuris leidžia mums gauti visą jo ilgį ir spausdiname vienodai.
Jei tai matysime savo konsolėje vykdydami programą, gausime:
DIDELIS
Kaip matome, mes gauname eilutę kiekvienam masyvo elementui ir galutinę eilutę, nurodančią tikrąjį jo dydį, taip pat pažymime, kad jei skaičiuojame nuo 0 iki 11, turime 12 elementų, taigi, ką mes paaiškiname apie indeksų skaičių parodė masyvą.Masyvų naudojimas yra labai populiarus ir labai naudingas, tačiau kartais pastebimi jo apribojimai, ypač kai dirbame su labai dinamiškomis struktūromis, kai nežinome, kiek elementų turėsime pabaigoje ir kur mums reikia šiek tiek daugiau funkcijų, išskyrus iteracijas, kad būtų galima peržiūrėti jo elementus.
Kai matome, kad turime būti sudėtingesni tvarkydami duomenis, galime pereiti prie kolekcijos, kurie yra ne kas kita, kaip keletas klasių, sugrupuotų į standartinę biblioteką „Java“ java.util ir tai leidžia mums sukurti kitų tipų duomenų struktūras.
Šiuo atveju mes šiek tiek panagrinėsime klasę „ArrayList“, kuris leidžia mums kurti masyvų sąrašus, kaip rodo jo pavadinimas, tačiau norint manipuliuoti jo elementais, turime tai padaryti taikydami skirtingus metodus.
Toliau pažiūrėkime nedidelį galimų klasės metodų sąrašą „ArrayList“ dar svarbiau ir kad mums gali tekti kurti savo programas, jei mums reikia kažko papildomo, visada galime pasinaudoti oficialiais kalbos dokumentais.
papildyti ()Šis metodas leidžia mums pridėti elementą prie sąrašo pabaigoje arba tam tikroje vietoje, tai apibrėžiama perduodant parametrus.
aišku ()Išvalo struktūrą ištrindamas arba ištuštindamas visus joje esančius elementus.
gauti ()Grąžina nurodyto sąrašo rodyklės vertę.
pašalinti ()Šis metodas leidžia mums pašalinti tam tikrą elementą iš duomenų struktūros.
toArray ()Šis metodas leidžia atlikti masyvo sąrašo ar duomenų struktūros turinio konversiją.
Norėdami paskelbti sąrašą su „ArrayList“, mes tiesiog turime sukurti šios klasės egzempliorių, todėl galime pradėti dirbti su elementų ir turinio priskyrimu, todėl galime pamatyti šią sintaksę:
ArrayList ourList = naujas ArrayList ();
Nors mes taip pat galime naudoti deklaraciją ir tuo pačiu metu priskirti elementus, kaip matome šioje kodo eilutėje:
Sąrašas ourList = Arrays.asList ("Pedro", "Juan", "Manuel");
Ekskursiją po mūsų sąrašą galima pasiekti pasikartojančiu ciklu su dėl () tai jau matėme masyvuose, skirtumas yra tas, kad kadangi mes tikrai nežinome elementų skaičiaus mūsų sąrašuose, mes turime apibrėžti ribą naudodami metodą dydis () tą patį ir norėdami gauti turinį tam tikrame indekse, naudojame metodą gauti (). Šios apžvalgos sintaksės pavyzdys galėtų būti toks:
už (int i = 0; i
Dabar mes sukursime nedidelę programą, kurioje praktiškai pritaikysime tai, ką matėme „ArrayList“ ir tokiu būdu nurodykite mokymąsi apie minėtą duomenų struktūrą:
importuoti java.util.ArrayList; public class ExampleList1 {public static void main (String [] argv) {ArrayList ourList = new ArrayList (); ourList.add ("Petras"); ourList.add ("Jonas"); ourList.add ("Francisco"); ourList.add ("Manolo"); ourList.add ("Paulius"); už (int i = 0; i
Šiame kode matome, kad pirmas dalykas, kurį mes darome, yra importuoti klasę „ArrayList“ pakuotės java.util, jei to nepadarysime, negalėsime ja naudotis.
Tada mes nustatėme naują tipo elementų sąrašą Styga, tada populiarinsime sąrašą naudodami metodą papildyti ()Kaip matome, neapibrėžėme elementų ribos, šis sąrašas dinamiškai augs, kai į jį pridedame elementų.
Pagaliau su ciklu dėl () ir naudojant metodą dydis () iš mūsų sąrašo objekto einame per jo elementus ir, norėdami gauti kiekvienos pozicijos vertę, naudojame metodą gauti () tada mes galime atspausdinti turinį. Pažiūrėkime, kaip jis atrodo paleidus jį konsolėje:
DIDELIS
Tai baigę, mes jau išmokome kurti ir dirbti su duomenų struktūromis „Java“, tai leis mums sukurti sudėtingesnes programas ir programas, atitinkančias mūsų poreikius.