Indholdsfortegnelse
På et tidspunkt i vores udvikling som softwareskabere kommer vi til at støde på situationer, hvor vi skal gøre meget mere komplekse ting inden for vores programmer, generelt udmønter det sig i mere kompleks datastyring og en anden organisering af dem.DatastrukturTil dette har vi Datastrukturer, som giver os mulighed for at organisere vores oplysninger inden for programmet for at få adgang til dem på en ordnet og skematisk måde. I Java Vi kan håndtere forskellige typer strukturer takket være dets klasser og standardbiblioteker, så hvis vi lærer, hvilke vi har til rådighed, er det muligt, at vi kan drage den nødvendige fordel og dermed opfylde vores mål.
EN array er en type struktur, der har en lineær konformation og kan lagre en mængde data, der er af samme type. De data, du kan gemme, er primitive typer som f.eks int, bool osv. Men du kan også gemme objekttyper, selvom det i dette tilfælde er gemt, er en reference til objektet og ikke objektet som sådan, men det er noget meget nyttigt at kende.
AdgangDa den er lineær, skal adgangen til dens indhold ske i rækkefølge, selvom vi kan pege direkte på et indeks heraf og få dens indhold, reagerer ruten i de fleste tilfælde på denne struktur på en sekvens af dine indekser.
Når vi har et indeks pr. Element, er det en matrix eller endimensionel vektorPå den anden side, når vi har mere end et indeks pr. Element, taler vi om arrays flerdimensionel, det vil sige, at vi inden for et indeks har en intern struktur med egne indekser.
Det er meget enkelt at erklære en matrix, vi skal kun definere den type data, den skal gemme og angive dimensionerne med parenteser, så skal vi definere dets navn og med det kan vi begynde at bruge dem.
Selvom der er flere måder at erklære en matrix på, er den foretrukne den korte form, som vi ser nedenfor:
type [] nameArrary = ny type [længde];
I tilfælde af en matrix flerdimensionel vi kan gøre det samme, men tilføje de nye lag eller dimensioner inden for den samme erklæring, for eksempel:
To-dimensionel array:
type [] [] nameArrary = ny type [længde] [længde];
Tredimensionelt array:
type [] [] [] nameArrary = ny type [længde] [længde] [længde];
Det eneste, vi skal huske på, er, at efter tre dimensioner tingene bliver meget mere komplekse, men dette vil blive dikteret af vores behov på tidspunktet for programmets udvikling.
For at gå igennem en matrix skal vi bruge en af de iterative cyklusser, vi har til rådighed, cyklussen er til en af favoritterne, da vi kan angive størrelsen på arrayet og gå igennem hvert af dets elementer.
Vi skal huske på, at matrixernes indeks starter fra nul, så i et treelements array ville deres indeks være [0], [1], [2], Dette skal tages i betragtning, da det ikke er en traditionel konto, det kan føre til forvirring.
Et generisk eksempel på, hvordan man går gennem et array, er noget i retning af følgende:
for (int i = 0; i
På samme måde som vi i det lille eksempel har foretaget skærmudskrivning af indholdet i det tilsvarende indeks, kan vi også udføre sekventielle tildelinger og andre operationer med arrayet. I tilfælde af et multidimensionelt array skal vi lave en cyklus for hver af de dimensioner, vi har, derfor taler vi om, at efter mere end tre dimensioner bliver en array meget kompleks.
Vi skal bygge en lille kode, hvor vi skal definere en matrix, så tager vi en rundtur i dens elementer, og vi kommer til at vise dem på skærmen. Så lad os se, hvordan vores kode ser ud:
public class ExampleArray1 {public static void main (String [] argv) {int [] ourArray = new int [12]; for (int i = 0; i <12; i ++) {ourArray [i] = i +1; System.out.println ("arrayets indhold i: [" + i + "] er:" + ourArray [i]); } System.out.println ("arrayets samlede længde er:" + ourArray.length); }}
I dette program er det første, vi gør efter at have defineret vores klasse og metoden vigtigste er at definere en matrix af typen ved navn int vores Array hvortil vi tildeler en længde på 12 elementer, derefter med en for loop, der går fra 0 til 11, vil vi tildele en værdi til hvert af indekserne i arrayet, så gør vi det med det samme, vi udskriver dets værdi og til sidst bruger vi ejendommen længde af arrayet, der giver os mulighed for at opnå dets samlede længde, og vi udskriver det ens.
Hvis vi ser dette i vores konsol, når vi udfører programmet, får vi følgende:
FORSTØRRE
Som vi kan se, får vi en linje for hvert element i arrayet og en sidste linje, der angiver dens reelle størrelse, vi bemærker også, at hvis vi tæller fra 0 til 11, har vi 12 elementer, så det vi forklarer om indekstalet er demonstreret af arrayet.Anvendelsen af arrays er meget populær og meget nyttig, men der er tidspunkter, hvor dens begrænsninger begynder at ses, især når vi arbejder med meget dynamiske strukturer, hvor vi ikke ved, hvor mange elementer vi vil have til sidst, og hvor vi har brug for en lidt mere funktionalitet bortset fra iterationer til at gå gennem dets elementer.
Når vi ser os selv i behovet for at være mere komplekse i håndteringen af data, kan vi gå til samlinger, som ikke er mere end et antal klasser grupperet i standardbiblioteket af Java java.util og det giver os mulighed for at oprette andre typer datastrukturer.
I dette tilfælde vil vi undersøge klassen lidt ArrayList, som giver os mulighed for at oprette lister over arrays som navnet angiver, men for at manipulere dets elementer skal vi gøre det gennem dets forskellige metoder.
Lad os se nedenfor en lille liste over de tilgængelige metoder i klassen ArrayList vigtigere, og at vi muligvis skal oprette vores programmer, hvis vi har brug for noget ekstra, kan vi altid ty til den officielle dokumentation for sproget.
tilføje ()Denne metode giver os mulighed for at tilføje et element til listen enten i slutningen eller i en bestemt position, dette defineres ved at passere parametrene.
klar ()Renser strukturen ved at slette eller tømme alle de elementer, den indeholder.
få ()Det returnerer værdien af det angivne indeks for den pågældende liste.
fjern ()Denne metode giver os mulighed for at fjerne et bestemt element fra datastrukturen.
tilArray ()Denne metode giver os mulighed for at foretage en array -konvertering af indhold på listen eller datastrukturen.
At erklære en liste med ArrayList, vi er simpelthen nødt til at oprette en forekomst af denne klasse, med dette kan vi begynde at arbejde med tildeling af elementer og indhold, for dette kan vi se følgende syntaks:
ArrayList ourList = ny ArrayList ();
Selvom vi også kan bruge en erklæring og samtidig tildeling af elementer, som vi ser i følgende kodelinje:
List ourList = Arrays.asList ("Pedro", "Juan", "Manuel");
Rundvisningen på vores liste kan opnås med en iterativ cyklus med til () som vi allerede så i arraysne, er forskellen, at da vi ikke med sikkerhed ved antallet af elementer på vores lister, skal vi definere grænsen ved hjælp af metoden størrelse () af det samme og for at opnå indholdet i et bestemt indeks bruger vi metoden få (). Et eksempel på syntaksen for denne gennemgang kan være følgende:
for (int i = 0; i
Nu skal vi lave et lille program, hvor vi omsætter det, vi har set om, i praksis ArrayList og på denne måde angive en indlæring om datastrukturen:
import java.util.ArrayList; public class ExampleList1 {public static void main (String [] argv) {ArrayList ourList = new ArrayList (); ourList.add ("Peter"); ourList.add ("John"); ourList.add ("Francisco"); ourList.add ("Manolo"); ourList.add ("Paul"); for (int i = 0; i
I denne kode ser vi, at det første, vi gør, er at importere klassen ArrayList af pakken java.util, hvis vi ikke gør det, kan vi ikke bruge det.
Så har vi defineret en ny liste over typeelementer Snor, så vil vi populær listen ved hjælp af metoden tilføje ()Som vi kan se, har vi ikke defineret en elementgrænse, denne liste vil vokse dynamisk, når vi tilføjer elementer til den.
Endelig med en cyklus til () og ved hjælp af metoden størrelse () af vores listeobjekt går vi gennem dets elementer, og for at opnå værdien af hver position bruger vi metoden få () med dette kan vi derefter udskrive indholdet. Lad os se, hvordan det ser ud, når vi kører det på vores konsol:
FORSTØRRE
Med dette har vi afsluttet denne vejledning, vi har allerede lært at oprette og arbejde med datastrukturer inden for Java, vil dette give os mulighed for at bygge mere komplekse applikationer og programmer, der opfylder vores behov.