Sadržaj
U nekom trenutku našeg razvoja kao kreatori softvera naići ćemo na situacije u kojima moramo učiniti mnogo složenije stvari unutar naših programa, općenito se to prevodi u složenije upravljanje podacima i njihovu drugačiju organizaciju.Struktura podatakaZa ovo imamo Strukture podataka, koji nam omogućuju da organiziramo svoje podatke unutar programa kako bismo im mogli pristupiti na uredan i shematski način. U Java Zahvaljujući klasama i standardnim knjižnicama možemo se nositi s različitim vrstama struktura, pa ako saznamo koje imamo na raspolaganju, moguće je da ćemo iskoristiti potrebne prednosti i tako ispuniti svoje ciljeve.
A nizu je tip strukture koja ima linearnu konformaciju i može pohraniti količinu podataka istog tipa. Podaci koje možete pohraniti su primitivne vrste kao što su int, bool itd. No, možete i pohraniti vrste objekata, iako je u ovom slučaju pohranjena referenca na objekt, a ne objekt kao takav, međutim to je nešto što je vrlo korisno znati.
PristupBudući da je linearan, pristup njegovom sadržaju mora se vršiti uzastopno, iako možemo izravno ukazati na njegov indeks i dobiti njegov sadržaj, ruta u većini slučajeva koju možemo učiniti na ovoj strukturi odgovara na niz vaših indeksa.
Kad imamo indeks po elementu to je niz ili jednodimenzionalni vektorS druge strane, kada imamo više od jednog indeksa po elementu, govorimo o nizovima višedimenzionalni, to jest, unutar indeksa imamo unutarnju strukturu s vlastitim indeksima.
Deklariranje niza je vrlo jednostavno, samo moramo definirati vrstu podataka koje će pohraniti i označiti dimenzije u zagradama, zatim moramo definirati njegov naziv i s tim ga možemo početi koristiti.
Iako postoji nekoliko načina za deklariranje niza, preferirani je kratki oblik kako vidimo u nastavku:
type [] nameArrary = novi tip [dužina];
U slučaju niza višedimenzionalni možemo učiniti isto, ali dodavanjem novih slojeva ili dimenzija unutar iste deklaracije, na primjer:
Dvodimenzionalni niz:
type [] [] nameArrary = novi tip [dužina] [dužina];
Trodimenzionalni niz:
tip [] [] [] nameArrary = novi tip [duljina] [duljina] [duljina];
Jedino što moramo imati na umu je da nakon tri dimenzije stvari postaju mnogo složenije, ali to će diktirati naše potrebe u vrijeme razvoja programa.
Za prolazak kroz niz moramo upotrijebiti jedan od iterativnih ciklusa koji su nam na raspolaganju, a to je ciklus za jedan od favorita, budući da možemo naznačiti veličinu niza i proći kroz svaki njegov element.
Moramo imati na umu da indeksi niza počinju od nule, pa bi u nizu od tri elementa njihovi indeksi bili [0], [1], [2], To se mora uzeti u obzir budući da nije tradicionalno, može dovesti do zabune.
Općeniti primjer kako se petljati kroz niz je nešto poput sljedećeg:
za (int i = 0; i
Na isti način na koji smo u tom malom primjeru napravili sitotisak sadržaja odgovarajućeg indeksa, također možemo obavljati sekvencijalne dodjele i druge operacije s nizom. U slučaju višedimenzionalnog niza, moramo napraviti ciklus za svaku dimenziju koju imamo, zato govorimo da nakon više od tri dimenzije niz postaje vrlo složen.
Napravit ćemo mali kod u kojem ćemo definirati niz, zatim ćemo obići njegove elemente i prikazati ih na ekranu. Pa da vidimo kako izgleda naš kod:
javna klasa ExampleArray1 {public static void main (String [] argv) {int [] ourArray = novi int [12]; for (int i = 0; i <12; i ++) {ourArray [i] = i +1; System.out.println ("Sadržaj niza u: [" + i + "] je:" + ourArray [i]); } System.out.println ("Ukupna duljina niza je:" + ourArray.length); }}
U ovom programu prvo što radimo nakon definiranja klase i metode glavni je definirati niz tipa int naš niz kojoj dodjeljujemo duljinu od 12 elemenata, zatim s for petljom koja ide od 0 do 11 dodijelit ćemo vrijednost svakom od indeksa niza, tada to činimo odmah ispisujemo njezinu vrijednost i na kraju koristimo vlasništvo duljina niza koji nam omogućuje da dobijemo njegovu ukupnu duljinu i jednako ga ispisujemo.
Ako to vidimo na našoj konzoli prilikom izvršavanja programa, dobit ćemo sljedeće:
POVEĆAJTE
Kao što vidimo, dobivamo liniju za svaki element niza i posljednju liniju koja označava njenu stvarnu veličinu, također primjećujemo da ako brojimo od 0 do 11 imamo 12 elemenata, pa ono što objašnjavamo o broju indeksa je demonstrirao niz.Korištenje nizova vrlo je popularno i vrlo korisno, međutim postoje slučajevi kada se počinju uočavati njegova ograničenja, osobito kada radimo s vrlo dinamičnim strukturama u kojima ne znamo koliko ćemo elemenata imati na kraju i gdje nam treba malo više funkcionalnosti osim iteracija za petlje kroz njegove elemente.
Kad vidimo da moramo biti složeniji u rukovanju podacima, možemo prijeći na zbirke, koje nisu ništa drugo do niz klasa grupiranih u standardnoj knjižnici Java java.util i to nam omogućuje stvaranje drugih vrsta struktura podataka.
U ovom slučaju ćemo malo istražiti razred ArrayList, što nam omogućuje da stvaramo popise polja kao što mu naziv govori, ali za manipulaciju njegovim elementima moramo to učiniti pomoću različitih metoda.
Pogledajmo ispod mali popis dostupnih metoda klase ArrayList važnije i da ćemo možda morati stvoriti svoje programe, ako nam zatreba nešto dodatno, uvijek se možemo obratiti službenoj dokumentaciji jezika.
dodati ()Ova nam metoda omogućuje dodavanje elementa na popis bilo na kraju ili na određenom mjestu, što je definirano prosljeđivanjem parametara.
čisto ()Čisti strukturu brisanjem ili pražnjenjem svih elemenata koje sadrži.
dobiti ()Vraća vrijednost naznačenog indeksa dotičnog popisa.
ukloniti ()Ova nam metoda omogućuje uklanjanje određenog elementa iz strukture podataka.
toArray ()Ova nam metoda omogućuje pretvorbu niza sadržaja popisa ili strukture podataka.
Za deklariranje popisa s ArrayList, jednostavno moramo stvoriti instancu ove klase, s tim možemo početi raditi na dodjeljivanju elemenata i sadržaja, za to možemo vidjeti sljedeću sintaksu:
ArrayList ourList = novi ArrayList ();
Iako možemo koristiti i deklaraciju i istovremeno dodjeljivanje elemenata kako vidimo u sljedećem retku koda:
Navedite našList = Arrays.asList ("Pedro", "Juan", "Manuel");
Obilazak našeg popisa može se postići iterativnim ciklusom s za () što smo već vidjeli u nizovima, razlika je u tome što budući da ne znamo sigurno broj elemenata na našim popisima, moramo definirati granicu pomoću metode veličina () istog te za dobivanje sadržaja u određenom indeksu koristimo metodu get (). Primjer sintakse za ovaj vodič mogao bi biti sljedeći:
za (int i = 0; i
Sada ćemo stvoriti mali program u kojem ćemo primijeniti ono što smo vidjeli ArrayList i na ovaj način navedite saznanja o navedenoj strukturi podataka:
import java.util.ArrayList; javna klasa ExampleList1 {public static void main (String [] argv) {ArrayList ourList = new ArrayList (); ourList.add ("Petar"); ourList.add ("Ivan"); ourList.add ("Francisco"); ourList.add ("Manolo"); ourList.add ("Pavao"); za (int i = 0; i
U ovom kodu vidimo da prvo što radimo je uvoz klase ArrayList paketa java.util, ako to ne učinimo, nećemo ga moći koristiti.
Tada smo definirali novi popis elemenata tipa Niz, tada ćemo popis populariti metodom dodati ()Kao što vidimo, nismo definirali ograničenje broja elemenata, ovaj će se popis dinamički povećavati kako mu dodajemo elemente.
Na kraju s ciklusom za () i koristeći metodu veličina () našeg objekta popisa prolazimo kroz njegove elemente i za dobivanje vrijednosti svake pozicije koristimo metodu dobiti () s tim možemo ispisati sadržaj. Pogledajmo kako to izgleda kada ga pokrenemo na konzoli:
POVEĆAJTE
Ovime smo završili ovaj vodič, već smo naučili stvarati i raditi sa unutarnjim strukturama podataka Java, to će nam omogućiti izgradnju složenijih aplikacija i programa koji zadovoljavaju naše potrebe.